Após a desconexão do soquete, você só poderá reconectar novamente de maneira assíncrona, e apenas em um EndPoint diferente. BeginConnect deve ser chamado em um thread que não sairá enquanto a operação não for concluída.
Click to search this error in Google
English version
Once the socket has been disconnected, you can only reconnect again asynchronously, and only to a different EndPoint. BeginConnect must be called on a thread that won't exit until the operation has been completed.