采用tcp协议的socket编程,假如服务器端不知道所要接收的数据的长度,如何定义接收buff的大小?

2024-11-09 04:45:02
推荐回答(2个)
回答1:

tcp是数据流。
如果你第一次的recv不能接收全部数据,可以再次调用recv接收剩余的。
具体点:
你在发送的时候可以把数据长度写在前4个字节,或者先发送数据长度过来。
接收的时候就能先知道数据长度,再动态分配内存,接收剩余数据。

这是socket中非常常用的方法。

回答2:

服务器端规定了socket接口形式,是客户端必须遵循的,否则连不上。buff的大小,那也是服务器规定的