当远程主机关闭连接时,Socket Send方法不会引发异常

时间:2011-07-11 13:26:32

标签: .net sockets

第一次使用Socket.Send(byte []数据)时,即使远程主机很久以前关闭了连接,它也不会抛出异常。它只会在第二次尝试发送数据时抛出异常。

我检查过,该方法确实返回了正确的字节数。我还使用了带有SocketError参数的重载。调用后包含SocketError.Success。

为什么套接字不会在第一次调用时抛出异常,而只会在第二次调用时抛出异常。

1 个答案:

答案 0 :(得分:1)

当数据已发送到本地TCP / IP堆栈时,“发送”操作被视为已完成。它不保证数据已到达远程端。