ソケット通信でのハンドル増加について


miki  2007-06-02 16:47:44  No: 136592

VB.NET 2003とWindowsXPでソケットの通信プログラムを作成しています。
ソースは下記のような感じです。

Private Sub SendData(ByVal rcv_buffer As String)

  ' IPアドレスとポート番号を取得
  Dim ipAddress As System.Net.IPAddress = 
  System.Net.IPAddress.Parse(strIp)
  
  Dim RemoteEndPoint As New System.Net.IPEndPoint(ipAddress, 10000)

  Try
    ' ソケットを作成
    Dim TcpClient As System.Net.Sockets.Socket
    TcpClient = New System.Net.Sockets.Socket (System.Net.Sockets.AddressFamily.InterNetwork,System.Net.Sockets.SocketType.Stream,System.Net.Sockets.ProtocolType.Tcp)

  '接続を開始
  TcpClient.BeginConnect(RemoteEndPoint, AddressOf  OnConnected,TcpClient)

        Catch Ex As Exception
            'エラーメッセージをログに書込み
            EventLog.WriteEntry("Servis", "SendData:" & Ex.ToString, EventLogEntryType.Error)
        End Try

    End Sub
    Private Sub OnConnected(ByVal ar As IAsyncResult)

        Dim TcpClient1 As System.Net.Sockets.Socket = CType(ar.AsyncState, System.Net.Sockets.Socket)

        Try
            'クライアントソケットの取得
            TcpClient1.EndConnect(ar)

            'データを送信
            Dim bytSendData As Byte()
            bytSendData = System.Text.Encoding.Default.GetBytes(resValue)
            TcpClient1.Send(bytSendData)

        Catch Ex As Exception
            'エラーメッセージをログに書込み
            EventLog.WriteEntry("Servis", "OnConnected:" & Ex.ToString, EventLogEntryType.Error)
        End Try

        '切断
        TcpClient1.Close()
        TcpClient1 = Nothing

    End Sub

この時に「TcpClient = New System.Net.Sockets.Socket (System.Net.Sockets.AddressFamily.InterNetwork,System.Net.Sockets.SocketType.Stream,System.Net.Sockets.ProtocolType.Tcp)」
の個所で必ず、ハンドルが1つ増加します。そのハンドルが毎回
1つずつ増えていくので気持ち悪くてなんとか開放したいのですが、
方法がわからず困っております。ハンドルがこのようにどんどん増加
していくと何かシステム上不具合が発生するものなのでしょうか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加