1

我对System.Net.Socket.BeginSend方法有疑问。

public IAsyncResult BeginSend(
    IList<ArraySegment<byte>> buffers,
    SocketFlags socketFlags,
    AsyncCallback callback,
    object state
)

如果在参数SocketFlags.None中指明,会在被触发之前全部发送吗?socketFlagsbufferscallback

  • 如果上述问题的答案是否定的:该EndSend方法只返回已发送缓冲区的字节。如何知道ArraySegment发送了哪些s?我需要愚蠢地循环缓冲区以找到发送的缓冲区?是否有可能ArraySegment发送一半?

  • 如果上述问题的答案是肯定的:它的大小是否有任何限制buffers?如果我buffers一次发送 10MB 怎么办?

一般来说,我不明白 .NET 如何在ArraySegment内部处理。发送前缓冲区会ArraySegment合并成一个大缓冲区吗?

4

0 回答 0