C# 使用异步套接字的回调
我的问题很简单,是关于异步套接字,使用TCP协议 当我使用“BeginSend”方法发送一些数据时,何时调用回调 当数据刚刚发送到网络时,或者当我们确保数据到达其目的地时(就像TCP规范一样),会调用它吗 谢谢你的回答 风筝 ps:如果我的英语有点差,我很抱歉。来自MSDN: 当应用程序调用BeginSend时,系统将使用单独的线程执行指定的回调方法,并在EndSend上阻塞,直到套接字发送请求的字节数或引发异常为止 成功完成发送并不表示数据已成功传递。如果传输系统中没有缓冲区空间来保存要发送的数据,则发送将被阻止,除非套接字已被置于非阻止模式C# 使用异步套接字的回调,c#,sockets,.net-3.5,asynchronous,C#,Sockets,.net 3.5,Asynchronous,我的问题很简单,是关于异步套接字,使用TCP协议 当我使用“BeginSend”方法发送一些数据时,何时调用回调 当数据刚刚发送到网络时,或者当我们确保数据到达其目的地时(就像TCP规范一样),会调用它吗 谢谢你的回答 风筝 ps:如果我的英语有点差,我很抱歉。来自MSDN: 当应用程序调用BeginSend时,系统将使用单独的线程执行指定的回调方法,并在EndSend上阻塞,直到套接字发送请求的字节数或引发异常为止 成功完成发送并不表示数据已成功传递。如果传输系统中没有缓冲区空间来保存要发送的
调用回调时,您可以确保数据已从输出缓冲区中清除(异步操作使用单独的线程,以确保在传输缓冲区中没有空间且必须等待发送日期的情况下,您的调用线程不会被阻塞)它将到达它的目的地,但并不是说它已经到达了目的地 但是,由于TCP协议的性质,您可以肯定(嗯,我想几乎可以肯定)它最终会到达目的地
但是,对于时间的目的,你不应该考虑回调的时间与数据到达对方的时间相同。
OK,谢谢你们两个,这正是我正在寻找的。注意这与开始接收/结束接收不同。