如何在StreamSocket上执行非对称关闭?

时间:2015-03-28 22:06:40

标签: c# windows-runtime

根据the documentation for the StreamSocket class

  

如果套接字上没有挂起的读取或写入操作,则显式关闭StreamSocket对象(调用Close方法)将确保正常断开连接。

哪个好。但那将会表现出一个"关闭,即套接字不再能够接收或发送。

是否有相当于只执行"发送"或者"收到"关闭StreamSocket I.e.我希望我的代码能够继续从远程端点接收,但是想要从我的终端发出流末尾信号,以便远程端点知道我已完成发送。


我试着只关闭输出端:

streamSocket.OutputStream.Dispose();

甚至

streamSocket.OutputStream.AsStreamForWrite().Dispose();

两者都没有产生任何明显效果。

我在StackOverflow中搜索" streamsocket shutdown"但唯一与此问题略有关联的问题是Handling WinRT StreamSocket disconnects (both server and client side),而这个问题更多的是基于StreamSocket的应用回应优雅的关闭,而不是启动一个。 :(


没有办法只做一个"发送"关机 - 相当于例如原生API中的shutdown(SD_SEND)或.NET中的Socket.Shutdown(SocketShutdown.Send) - 无法实现StreamSocket端点可以在仍然存在的情况下启动连接终止的协议能够接收远程端点发送的最后一位数据。我显然希望事实上有一种方法可以通过StreamSocket类实现这一目标。但我不能为我的生活看到任何方式去做。

0 个答案:

没有答案
相关问题