下面是异步插座一个场景,我dont't很明白......我有2个TCP套接字,客户端套接字和服务器套接字。我的服务器套接字绑定和端口上监听。

我的客户端套接字连接到服务器套接字(使用BeginConnect / EndConnect)。然后我用BeginSend()将消息发送到服务器。在服务器端,我不要做一个接收()或BeginReceive()。

什么情况是,我BeginSend调用指定我的AsyncCallback被调用和它的IAsyncResult告诉我,它完成与调用Socket.EndSend()不会引发任何异常......

有什么,我不明白或不应该我的AsyncCallback仅如果BeginSend呼叫实际发送一些东西到服务器(已接收到的所有字节服务器后叫即:回调)叫什么名字?如果没有收到服务器上完成,应该不是我的回调可以在到期的SendTimeout后叫我到Socket.EndSend调用随后将引发异常?

由于

有帮助吗?

解决方案

不,TCP / IP处理这一切为您服务。还有,在将保存数据,直到它可以被接收到连接两边的缓冲区。如果没有缓冲,就发送健谈通信时可能是可怕的延迟。

认为它像寄信。它坐落在您的邮箱,直到邮件的人捡起来。一旦出现这种情况,已被发送。它尚未收到。这可能是在运输过程中,或者它可以在他们的邮箱中等待他们阅读。

所以越来越回调BeginSend只告诉你之后,这是的发送的。只有这样,才能肯定知道对方接收并处理的数据是请求回确认的一段时间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top