Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个 C# 服务器应用程序,它通过 TCP 从 Android 客户端接收一个大字节数组。问题是 Android 客户端发送 14952 字节,而 C# 不能接收超过 4344。有什么方法可以让 C# TCP 服务器接收所有 14952 字节?
TCP 是一种流协议。您可以可靠接收的唯一缓冲区大小是单个字节。适当的 TCP 服务器将recv循环调用,直到它读取到处理消息所需的字节数。应用层协议需要 (1) 在消息本身中包含消息的字节大小,或者 (2) 需要定义消息如何在底层字节流上成帧。
recv
简短的回答:只要字节保持与发送时相同的顺序,TCP 层可以自由地将字节以它想要的任何字节大小的块呈现给应用层。