Как предотвратить закрытие приложения, когда я закрываю сокет сервера. - PullRequest
0 голосов
/ 12 января 2012

Я создал сервер-клиентское приложение, используя асинхронный сокет.Я обнаружил проблему при закрытии сокета на сервере, приложения так закрылись.Процедура, которую я делаю, чтобы закрыть сервер сокетов:

  1. Завершить поток прослушивания.
  2. Закрыть клиентский сокет все еще подключен к серверу.
  3. Закрытьсокет сервера.

Как предотвратить закрытие приложения при закрытии сокета сервера?Спасибо

    Protected Friend Sub CloseServerSocket(ByVal IPAddress As IPAddress, ByVal socketPort As Integer)

    ' Terminate the listening thread. 
    If listeningThread.IsAlive Then listeningThread.Abort()

    ' Close the client socket is still connected to the server.
    For Each sock As Socket In workSocketList
        If sock.Connected Then
            Interlocked.Decrement(workCount)
            sock.Close()
        End If
    Next

    ' Close the server socket.
    serverSocket.Close()
    serverSocket = Nothing
End Sub

1 Ответ

0 голосов
/ 14 января 2012
Protected Friend Sub CloseServerSocket(ByVal IPAddress As IPAddress, ByVal socketPort As Integer)

' Terminate the listening thread. 
If listeningThread.IsAlive Then listeningThread.Abort()

' Close the server socket.
serverSocket.Close()
serverSocket = Nothing

' Close the client socket is still connected to the server.
For Each sock As Socket In workSocketList
    If sock.Connected Then
        Interlocked.Decrement(workCount)
        sock.Close()
    End If
Next

End Sub
...