TcpListenerを使用して着信通信をリッスンするアプリケーションを保守しています。次のコードは接続を開きます。
Dim listener As TcpListener
_listenFailed = False
Try
listener = New TcpListener(System.Net.IPAddress.Parse(Me.Host), Me.Port)
listener.Start()
Catch ex As Exception
' an error here means the settings are likely bogus
_listenFailed = True
Return
End Try
While Not _stoplistening
{
' Accept connection
}
私が抱えている問題は、別のコンピューターからファイルを送信すると、「ターゲットマシンがアクティブに拒否したため、接続できませんでした」というエラーが表示されることです。
ファイアウォールとウイルス対策を確認しましたが、ブロックはありませんでした。使用しました
netstat -a -n
ポートがアクティブでリッスンしていることを確認します。どちらのアプリケーションも、管理者モードでVisual Studioから実行されていますが、これによって違いが生じるわけではありません。受け入れ接続コードの最初の行にブレークポイントを設定していますが、実行されません。
アプリケーションを停止してTcpListenerを調べたところ、深く掘り下げた場合にいくつかのエラーが発生したことがわかりました。TcpListener.LocalEndpoint.IPEndPoint.IPAddress.Address.ErrorCodeで、エラー10045「OperationNotSupported」が発生しました。また、TcpListener.Socket.RemoteEndPoint.ErrorCodeで、エラー1057が発生しました。「ソケットが接続されていないため、データの送受信要求が許可されませんでした。また、(sendto呼び出しを使用してデータグラムソケットで送信する場合)アドレスが指定されませんでした。 。これらのエラーのいずれかが関連しているかどうかはわかりません。
この問題の原因について何か洞察があれば、または問題の根本を追跡するために実行できる手順があれば、私は感謝します。