QA@IT
«質問へ戻る

質問を投稿

TCP/IP通信に関する質問です。

下記の3つのLinuxPCを使って、TCP/IPによるソケット通信のシステムを作成しました。
PC1: IP:192.168.0.1 Port: 20000 TCPサーバ
PC2: IP:192.168.0.2 Port: 20000 TCPサーバ
PC3: IP:192.168.0.3 Port:ランダム(クライアントなので) TCPクライアント

PC3をクライアントとして、同じポート番号を持つアプリが動いている
PC1とPC2に繋いで通信をする形です。
このシステムは問題なく動きました。

しかし、続いてPC1とPC2を一つのPCに(ハードウェアとして)まとめたくなったときに、
下記の条件があったとき、どのようにすれば良いでしょうか?

  1. PC3のソフトウェアは一行も変更しない
  2. PC1とPC2のソフトは変更してもよいが、同一のハードウェアになっても、それぞれのソケットに流れるデータは変わらないようにすること

一台のコンピュータにおいて、一つのNICに複数のIPをふることはできましたが、
単一OS上で、同じポート番号のソケットを作成するのはできないと思っています。
今のところ、一台のコンピュータで仮想マシンを二台立ち上げる方法を考えていますが、
それ以外に上手い方法はあるでしょうか?

非常に困っているため、是非力を貸してもらえると幸いです。

下記の3つのLinuxPCを使って、TCP/IPによるソケット通信のシステムを作成しました。
PC1: IP:192.168.0.1 Port: 20000 TCPサーバ
PC2: IP:192.168.0.2 Port: 20000 TCPサーバ
PC3: IP:192.168.0.3 Port:ランダム(クライアントなので) TCPクライアント

PC3をクライアントとして、同じポート番号を持つアプリが動いている
PC1とPC2に繋いで通信をする形です。
このシステムは問題なく動きました。

しかし、続いてPC1とPC2を一つのPCに(ハードウェアとして)まとめたくなったときに、
下記の条件があったとき、どのようにすれば良いでしょうか?
1. PC3のソフトウェアは一行も変更しない
2. PC1とPC2のソフトは変更してもよいが、同一のハードウェアになっても、それぞれのソケットに流れるデータは変わらないようにすること

一台のコンピュータにおいて、一つのNICに複数のIPをふることはできましたが、
単一OS上で、同じポート番号のソケットを作成するのはできないと思っています。
今のところ、一台のコンピュータで仮想マシンを二台立ち上げる方法を考えていますが、
それ以外に上手い方法はあるでしょうか?

非常に困っているため、是非力を貸してもらえると幸いです。