0

vb.net で単純な tcp クライアント サーバー アプリケーションを作成しました。ローカル ホスト(127.0.0.1) を IP アドレスとして設定すると、すべて正常に動作します。リモート マシンに接続したい (クライアントを自分のマシンに、サーバーを別のマシンに保持する、またはその逆)。

編集:

わかりました、対象のコードは次のとおりです。

サーバー:

Dim server As TcpListener = New TcpListener(IPAddress.Any, port)

クライアント:

Dim theip As IPAddress = IPAddress.Parse(TextBox1.Text) client = New TcpClient(theip.ToString, port)

クライアントがリモート マシン (インターネット経由で接続) にあり、サーバーが別のコンピューター (外部 IP アドレスがわかっている) にある場合、"TextBox1.Text" に何を入力すればよいでしょうか? サーバーを実行しているマシンの外部 IP アドレスをテキスト ボックスに直接入力できますか? また、「ポート転送」/「ファイアウォールで接続を許可する」などの処理を行う必要がありますか? はいの場合、私のアプリケーションがこれを自動的に行うように、またはこれを達成するための代替アプローチがあり、ポート転送が不要になるように、私を案内するか、チュートリアルをリンクしていただけますか? どうもありがとう!

4

1 に答える 1

0

あなたは、他のマシンが外部IP アドレスを持っていると言います。これは、ローカルIP アドレスも持っていることを意味します。つまり、NAT ファイアウォールなどの背後にあります。この場合、ポート転送を設定するなどして、ファイアウォールを設定して通信を許可する必要があります。MSN Messenger や VOIP クライアントなどのアプリケーションには、これを自動的にネゴシエートするための精巧なメカニズムがありますが、あまりうまくいかないことがよくあります。

于 2013-07-14T15:21:58.333 に答える