2012-01-12 18 views
0

私は、非同期ソケットを使用してサーバークライアントアプリケーションを作成しました。サーバー上のソケットを閉じるときに問題が見つかりました。ソケットサーバーを閉じる手順は次のとおりです。サーバーソケットを閉じると、アプリケーションが終了するのを防ぐ方法。

  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 
+0

デバッグアプリケーション。 –

+0

私はステップ2を3と交換して成功しました。ありがとう:) –

答えて

0
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 
関連する問題