- 论坛徽章:
- 0
|
开始看了一点UNP,看完了那个最简单的回射程序之后有了一些疑惑的地方,跑来这请教下大家。
在tcp链接建立之后
client从stdin读出数据写到套接字中,然后再从套接字中读取数据;
- while (Fgets(sendline, MAXLINE, fp) != NULL) {
- Writen(sockfd, sendline, strlen(sendline));
- if (Readline(sockfd, recvline, MAXLINE) == 0)
- err_quit("str_cli: server terminated prematurely");
- Fputs(recvline, stdout);
- }
复制代码 server从套接字读取数据再些回到套接字中。
- while ( (n = read(sockfd, buf, MAXLINE)) > 0)
- Writen(sockfd, buf, n);
复制代码 我的疑问是在client执行Writen之后,是不是就报这些数据封装成一个TCP报文段发送给server?
那么server的read是不是读取一个TCP报文段之后就停止了(假设这个TCP报文段大小小于MAXLINE)?
有没有可能server的一次read就读取了多个TCP报文段中的数据? |
|