我正在编写一个C#服务器应用程序,它通过TCP从Android客户端接收一个大字节数组。问题是Android客户端发送14952个字节,而C#不能接收超过4344个。任何方法可以使C#TCP服务器接收所有14952个字节?
答案 0 :(得分:3)
TCP是一种流协议。您可以可靠接收的唯一缓冲区大小是单个字节。正确的TCP服务器将在循环中调用recv
,直到它读取了处理消息所需的字节数。应用层协议需要(1)在消息本身中包含消息的字节大小,或者(2)需要定义如何在基础字节流上构造消息。
简答: TCP层可以自由地将字节呈现给它所需的任何字节大小的块,只要字节保持与它们发送的顺序相同。