Как обрабатывать отключение / переподключение с windows StreamSocket - PullRequest
1 голос
/ 05 июля 2019

Как правильно обработать событие отключения и повторного подключения с помощью класса Windows StreamSocket (TCP)?

У меня возникла проблема, когда при вызове async_connect после события разъединения вызывался «Недопустимая операция, метод был вызван в неожиданное время»

Нужно ли создавать новый поток или использоватьколичество времени до попытки повторного подключения?

https://docs.microsoft.com/en-us/uwp/api/windows.networking.sockets.streamsocket

1 Ответ

1 голос
/ 08 июля 2019

Решением было добавить следующий код:

// on catching an exception
socket.dispose();
connect();

// connect function
connect():
    socket = new StreamSocket ...

Необходимо было 1) вызвать socket.dispose () для сокета, от которого клиент отключился, и 2) создать новый сокет (сокет= новый StreamSocket (...)).Повторное использование одного и того же сокета для подключения не работает.

...