套接字关闭关闭错误

时间:2013-11-21 22:20:45

标签: c# sockets shutdown

所以我试图关闭一个套接字而不将它关闭到另一边进行阅读。

我的结束代码是

    objClientSocket.Shutdown(SocketShutdown.Both);
    objClientSocket.Close(120);

问题在于正在执行

的应用程序
    objClientSocket.Receive(buffer);

收到连接被强行关闭的错误。如果我在.Shutdown()之前设置一个断点并让我的应用程序在接收端运行,那很好。我认为.Shutdown()方法等待在关闭之前读取和清空套接字?我错了吗?

在此之后我取出.Shutdown()并且.Close()导致同样的错误。(并不感到惊讶,但我想我会把它弄掉。)

1 个答案:

答案 0 :(得分:0)

我预计问题可能是下游端已经决定要接收从未实际发送过的数据。自从我处理了细节以来已经有一段时间了,但是套接字API提供了方法(我认为一个是“选择”),它可以用来等待套接字上发生“某事”;一旦套接字说出某些事情发生,就可以看到有多少数据可用(如果有的话)然后处理它。