C# SendAsync何时完成?
你好C# SendAsync何时完成?,c#,.net,sockets,asynchronous,C#,.net,Sockets,Asynchronous,你好 是否有办法确保所有消息字节都已通过SendAsync发送,此方法的回调中没有提供任何信息,因此如何假设所有消息都已发送??在发送操作中使用套接字可以发送的最大消息大小是多少?是否存在任何限制,或者我们可以发送所需大小的数据 感谢您的明确答复;) 如果调用回调时没有错误指示,则消息已发送。如果调用回调时没有错误指示,则消息已发送。是的,您需要的所有信息都在回调中: private void SendSAEA_Completed(object sender, SocketAsyncEv
是否有办法确保所有消息字节都已通过SendAsync发送,此方法的回调中没有提供任何信息,因此如何假设所有消息都已发送??在发送操作中使用套接字可以发送的最大消息大小是多少?是否存在任何限制,或者我们可以发送所需大小的数据
感谢您的明确答复;) 如果调用回调时没有错误指示,则消息已发送。如果调用回调时没有错误指示,则消息已发送。是的,您需要的所有信息都在回调中:
private void SendSAEA_Completed(object sender, SocketAsyncEventArgs sendSAEA)
{
if (sendSAEA.BytesTransferred == 0 || sendSAEA.SocketError != SocketError.Success)
{
Close();
}
else
{
// Process sendSAEA.BytesTransferred
}
}
此外,根据MSDN,我们可以在一次发送操作中发送缓冲区:
- 您可以使用:Socket.SendBufferSize控制缓冲区大小
- 默认值为8192
()是的,您需要的所有信息都在回调中:
private void SendSAEA_Completed(object sender, SocketAsyncEventArgs sendSAEA)
{
if (sendSAEA.BytesTransferred == 0 || sendSAEA.SocketError != SocketError.Success)
{
Close();
}
else
{
// Process sendSAEA.BytesTransferred
}
}
此外,根据MSDN,我们可以在一次发送操作中发送缓冲区:
- 您可以使用:Socket.SendBufferSize控制缓冲区大小
- 默认值为8192
()显然,除非出现异常,否则它不会停止发送字节。也许信任该类型执行它的设计目的?显然,除非出现异常,否则它不会停止发送字节。也许你会相信它的设计目的?