c/c++ 网络编程 read,write函数深入理解
程序员文章站
2022-07-11 10:32:15
read,write函数深入理解 1,服务端的write函数,可以指定发送数据的长度(第三个参数length) 2,客户端的read函数,可以指定收取数据的长度(第三个参数length) 问题来了,假设要发送的数据的总长度为20,服务端调用write函数时,是放在循环里调用,每次发送的长度设置为1, ......
read,write函数深入理解
1,服务端的write函数,可以指定发送数据的长度(第三个参数length)
write(connfd, &buff[i], length);
2,客户端的read函数,可以指定收取数据的长度(第三个参数length)
read(sockfd, recvline, length)
问题来了,假设要发送的数据的总长度为20,服务端调用write函数时,是放在循环里调用,每次发送的长度设置为1,所以全部发完,需要循环20次,也就是调用了20次的write函数。然后,客户端的read函数调用如下面所示,计数器cnt的值为多少???
int cnt = 0; while ( (n = read(sockfd, recvline, maxline)) > 0) { cnt += 1; recvline[n] = 0; /* null terminate */ if (fputs(recvline, stdout) == eof) err_sys("fputs error"); } printf("count:%d\n", cnt);
根据运行服务端的程序的机器和运行客户端程序的机器不同,而不同。
想强调的是:针对不同的环境,我们的程序必须作好为字节流读入这些数据的准备,直到遇上数据流的末尾
c/c++ 学习互助qq群:877684253
本人微信:xiaoshitou5854
下一篇: 【Revit API】梁的净高分析