2013-11-21 51 views
0

所以我想关闭一个套接字而不关闭它到另一边阅读。套接字关闭关闭错误

我关闭代码是

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

的问题是,在执行该

objClientSocket.Receive(buffer); 

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

在此之后我拿出.Shutdown()和.Close()会导致同样的错误。(不奇怪,但以为我把它弄出来的方式。)

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

回答

0

我想到问题可能下游端已经决定要接收从未真正发送的数据。我已经处理了一些细节,但socket API提供了一些方法(我认为其中的一个是“Select”),可以用来等待套接字上发生“某些事情”;一旦套接字发生了什么事情,就可以看到有多少数据可用(如果有),然后处理它。

+0

谢谢我会试一试! –