采用tcp协议的socket编程,假如服务器端不知道所要接收的数据的长度,如何定义接收buff的大小?
2个回答
展开全部
tcp是数据流。
如果你第一次的recv不能接收全部数据,可以再次调用recv接收剩余的。
具体点:
你在发送的时候可以把数据长度写在前4个字节,或者先发送数据长度过来。
接收的时候就能先知道数据长度,再动态分配内存,接收剩余数据。
这是socket中非常常用的方法。
如果你第一次的recv不能接收全部数据,可以再次调用recv接收剩余的。
具体点:
你在发送的时候可以把数据长度写在前4个字节,或者先发送数据长度过来。
接收的时候就能先知道数据长度,再动态分配内存,接收剩余数据。
这是socket中非常常用的方法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询