我试图了解在事物的套接字方案中使用缓冲区。这是我的理解,如果有人能告诉我我是否正确或反馈我可能误解的地方,那就太好了。
使用 MSDN示例中详细介绍的异步套接字(以下所有内容均参考该示例)
下面描述了一个我理解的状态对象:
// State object for reading client data asynchronously
public class StateObject
{
// Client socket.
public Socket workSocket = null;
// Size of receive buffer.
public const int BufferSize = 1024;
// Receive buffer.
public byte[] buffer = new byte[BufferSize];
// Received data string.
public StringBuilder sb = new StringBuilder();
}
现在它说缓冲区是 1024 字节。当您接收数据时,您一次只要求 1024 个字节?在异步方法 ReceiveCallback 中,它只要求 1024,然后说这可能不是所有数据,所以现在检索下一个 1024。
所以基本上,发送到套接字的输入流以 1024 字节块的形式读取,并且您一直读取直到到达终点(根据您自己的定义)?