如图所示的客户端代码
TCP不存在数据边界,因此,多次调用write函数传递的字符串有可能一次性传递到服务器端,此时客户端就可能收到服务端发送的多个字符串,与需求不符合。
服务器端希望通过调用一次write传输数据,但如果数据太大,操作系统可能将它分成多个数据包发送,客户端在此过程中可能并未收到全部数据包却直接调用read。
echo客户端可以提前确定接受数据大小,因此可以利用加以限制。
但在其他需求的应用,提前确定接受数据大小明显是不可能的,此时需要的是应用层协议的定义。
Server: