0

私はソケットの初心者です、そして私の質問はこれです:

私が自宅のコンピューターを持っていて、友人も自宅のコンピューターを持っているとしましょう。(私はgpr​​s / edgeモデムでネットに接続しています。私の友人は有線で接続しています-これが重要かどうかはわかりません)。

たとえば、whatismyip.comページでIPを確認できます。彼は彼のためにもそれをすることができます。

単純なソケット(WinSock)コードを記述し、それらのIPをそのようなコードに配置した場合、マシン間でネットワーク通信を行うだけで十分であり、機能するかどうかはわかりませんか?

WinSockのサンプルコードのどこにそのようなIPを配置しますか?

編集:いくつかの説明

私は自分のマシンでローカルにいくつかの例をコンパイルしてテストしたc/winapiを使用していますが、動作するようですが、2つのIPを提供する場合(whatismyip.comから取得)、2台のリモートコンピューターで動作するかどうかはわかりませんページ)。

それは確かに機能するか、そうでないかもしれませんか?一部のソケットアドレスフィールドでこれらのIPのみを提供する必要がありますか、それともさらにいくつかのことを行う必要がありますか?

edit2:

2台のホームコンピューター間で簡単なwinapiゲームを作成する必要があります(winsockを介したインターネット経由の接続)ファイアウォールをオフにできますが、機能しませんか?それを機能させる方法は?

4

3 に答える 3

2

ほとんどの家庭用ルーターが行っているNetwork Address Translationを読む必要があります。次に、ポート転送ルールをルーター/モデム ファイアウォールに追加します。

于 2012-05-31T21:05:54.963 に答える
2

いくつかの選択肢があります。1 つは、静的ポート フォワーディングを設定することです。つまり、ポート X が内部 IP アドレス abcd になるようにルーターを設定します。これには通常、静的 IP アドレスを使用してコンピュータを設定する必要があります。

ほとんどの人は一般的にそれを避けることを好みます - それは可能ですが、必ずしも些細なことではありません。利用可能なツール/プロトコルには、STUNTURNICE、およびUPnPがあります。UPnP を直接使用することもできますが、 libupnpなどのライブラリを介して処理する方が少し簡単な場合があります。

于 2012-05-31T22:25:20.103 に答える
0

まず、使用するプロトコルを決定する必要があります。
TCPまたはUDP?
TCP/IP 通信が必要な場合は、1 台のコンピューターがサーバー (リッスン) になり、1 台のコンピューターがクライアントになる必要があります。

これを C++ でプログラミングしていますか? サーバー側コード
の例を次に示します。

于 2012-05-31T20:54:13.573 に答える