
私は、ルーター経由でサーバーに接続されたロボットを使用するプロジェクトに取り組んでいます。マルチキャストを使用しているため、すべてのロボットが同じポート (61234 とします) にソケットをバインドします。各ロボットには独自のアドレス (192.0.1.10:61234、192.0.1.11:61234、192.0.1.12:61234 など) があるため、正常に動作します。
現在、シミュレータを使用してテストを行っているため、ロボットのコードはサーバーをホストするコンピューター上で実行されており、localhost を使用してロボットをサーバーに接続しています。
問題は、すべてのロボットが同じアドレス 127.0.0.1:61234 を持ち、サーバーからのメッセージが正しく配信されないことです。
コンピュータ上でネットワークをエミュレートして、エミュレートされた各ロボットに異なるアドレスを持たせることは可能ですか?
答え1
未使用のネットワーク インターフェイスがある場合は、複数の IP アドレスを一度に割り当てることができます (「TCP/IP の詳細設定」を使用)。
もし、あんたがしない未使用のネットワーク インターフェイスがある場合は、作成する方法がいくつかあります。VirtualBox の「ホスト専用ネットワーク」インターフェイスを使用するか、Hyper-V の「内部」vSwitch を使用するか、「Microsoft ループバック アダプター」をインストールします。次に、上記のように IP アドレスを割り当てます。
これは実際には全体をエミュレートするものではない通信網、この方法で割り当てられたすべてのアドレスは、同じシステムに属するため (ループバック アドレスなど)、目的には適うはずです。