Решением было добавить следующий код:
// on catching an exception
socket.dispose();
connect();
// connect function
connect():
socket = new StreamSocket ...
Необходимо было 1) вызвать socket.dispose () для сокета, от которого клиент отключился, и 2) создать новый сокет (сокет= новый StreamSocket (...)).Повторное использование одного и того же сокета для подключения не работает.