看到说tcp粘包问题的可能原因之一是接收端未及时从缓冲区接收数据造成的。于是我想自己
测试一下,就写了一个程序。
服务端是这样的:等待客户端连接成功之后,先等待10秒钟,然后在while循环里用read读取
读取数据,每次读取四个字符。
客户端是这样的:与服务端连接成功之后,立即用write函数循环发送4个字符,每次发送一个字符,共发送四次。
但是我发现服务端在10秒钟过后,并没有像我预期的直接把这四个字符一次性全部读取,而是循环读了四次,一次一个。。这是为什么?在服务端读取之前,客户端不是已经把四个字符都发过来了吗?服务端读取之前应该已经有四个字符了啊,为什么没有一次性读取,而是分了四次?
还请了解的能帮忙解答下。