使用Windows StreamSocket类(TCP)处理断开和重新连接事件的正确方法是什么?
我遇到一个问题,即在断开连接事件后调用async_connect时,调用了“无效操作,方法在意外的时间被调用”
我需要创建一个新的流套接字,还是要等待一段时间才能尝试重新连接?
https://docs.microsoft.com/en-us/uwp/api/windows.networking.sockets.streamsocket
答案 0 :(得分:1)
解决方案是添加以下代码:
// on catching an exception
socket.dispose();
connect();
// connect function
connect():
socket = new StreamSocket ...
有必要1)在客户端断开连接的套接字上调用socket.dispose(),并2)创建一个新套接字(socket = new StreamSocket(...))。重复使用同一套接字进行连接无法正常工作。