我对System.Net.Socket.BeginSend方法有疑问。
public IAsyncResult BeginSend(
IList<ArraySegment<byte>> buffers,
SocketFlags socketFlags,
AsyncCallback callback,
object state
)
如果SocketFlags.None
参数中显示socketFlags
,那么在buffers
被解雇之前是否会发送所有callback
如果上述问题的答案是否:EndSend
方法只返回已发送缓冲区的字节数。如何知道发送了哪些ArraySegment
?我需要愚蠢地循环缓冲区以找到发送的缓冲区?并且可能会发送一半ArraySegment
吗?
如果上述问题的答案为是:buffers
的大小是否有限制?如果我一次发送10MB buffers
怎么办?
一般来说,我不明白.NET如何在内部处理ArraySegment
。在发送之前,ArraySegment
缓冲区是否会合并到一个大缓冲区?