リモートサーバーに接続し、そのポートのデータを受信するVB.Netアプリケーションを作成しています。VB.Netポートが開いているかどうかを確認して接続を受け入れる
私は、問題のIP /ポートが接続をリッスンしているかどうかをチェックする次の機能を持っています。リモートポート上のプロセスが動作しているときはうまく動作しますが、例外ハンドラを実行するのではなく、実行していないときはVisual Studioで実行したときに醜いダイアログボックスが表示されます。
例外ハンドラが起動していない理由は何ですか?
Private Function testSelectedPort(ip As String, port As Integer) As Boolean
' Function to open a socket to the specified port to see if it is listening
' Connect to socket
Dim testSocket As New System.Net.Sockets.TcpClient()
Try
testSocket.Connect(ip, port)
' The socket is accepting connections
testSocket.Close()
Return True
Catch ex As Exception
' The port is not accepting connections
Return False
End Try
Return False
End Function
、それはtestSocket.Connect(IP、ポート)ラインでスローされます「対象のコンピュータによって拒否されたため、接続していません」にスローされるエラー。
接続に失敗した場合、Catchセクションのコードを実行すると思っていましたか?
に、あなたが投げたときにブレークする特定の例外の種類をチェックされていないことを確認してください?その場合は、デバッガが処理されているかどうかにかかわらず、例外を発生させるようにデバッガを設定しているためです。 –
[例外設定]ウィンドウ(https://msdn.microsoft.com/en-us/library/x85tt0dd.aspx)で例外タイプが常に破損していないことを確認しましたか? –
それはヴィンセントだった、私は前のプロジェクトでそれを変更したに違いない。すべてをデフォルトにリセットすると固定されます。私はあなたの答えを受け入れることができませんが、Up/Down/Acceptボタンを表示するには小さすぎるからです:-( –