#include <fcntl.h>
#include <unistd.h>
#define NUM 1000 //每次最大写入1000字节
int main(int argc, char *argv[]){
int fd1, fd2, check
char buf[NUM]
fd1 = open("file1", O_RDONLY)//只读打败猛开
fd2 = open("file2", O_WRONLY)//只写打开
while(condition){
check = read(fd1, buf, num_read) //num_read是int,读入写出的字节数,自己控制
if(check != num_read)
break //读不够数可能到结尾了,退出
if(check == -1)
perror("read error")//也可能是出错了
if(write(fd2, buf, strlen(buf)) != strlen(buf))
perror("write error")
}
close(fd1)
close(fd2)
return 0
}
直接在百度里手打,可能有手误,思路就察念桥这样。
1. 为何这个服务端和客户端通信的时候只有client能收到服务器发来的消息,但是服务端却收不到消息?服务器的accept得到的link_fd,只是对应于客户端的,如果服务端想要收消息,等于服务端也要有个client
2. htons和inet_aton有什么区别?
inet_aton()是一个改进的方法来将一个字符串IP地址转换为一个32位的网络序列IP地址。
htons的功能:将一个无符号短整型数值转换为网络字节序,即大端模式(big-endian)
通俗说法:inet_aton就是把“192.168.1.1”转成一个32位的对皮耐应于该ip的一个数字。
而htons,是改变字节序燃扮春,根据当前机器的字节序是大端还是小端,来调整字节的顺序,如1,如果是int,小端的话是01 00 00 00, 大端的话是 00 00 00 01, 而如果使用网络,必须缺桐避免平台相关的因素,所以统一规定为大端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)