1

1 つのブレードで 14 の Java プロセスを実行しています。各プロセスは、ProxyServer (F5) によって認識される仮想 IP にバインドされているため、外部クライアントが F5 を呼び出すと、その呼び出しは 14 のプロセスのいずれかにリダイレクトされます。

何よりも、私のプロセス (14 のうちの 1 つ) は、別のブレードで実行されている別のアプリケーションへの呼び出しを実行します。

質問は次のとおりです。TCP クライアントで仮想 IP を使用して実行されている Java プロセスで、発信 TCP パケットのソース IP を制御するにはどうすればよいですか? つまり、発信 TCP パケットの送信元アドレスとして仮想 IP を設定する方法を探しています。(デフォルトでは、ブレードの物理 IP に設定されています)。

4

2 に答える 2

0

今のところ言語/ライブラリを忘れています...リスニングソケットの場合と同じ方法で、接続ソケットのローカルアドレスやローカルポートを定義します。bind()希望するIPアドレスやポートへのソケット。バインドしないことは、ゼロ値にバインドすることと同じです。

値がゼロの場合、OSが選択します。アドレスの場合、宛先への送信に使用されるインターフェイスのアドレスにバインドされます。ポートには、現在使用されていない非特権ポート(> 1023)が選択されます。

于 2012-10-21T23:14:22.883 に答える
0

次のSocketコンストラクターを使用できます。

Socket(String remoteHost, int remotePort, InetAddress localAddress, int localPort)

または、ソケットの作成後にSocket.bind()を使用します。

http://docs.oracle.com/javase/6/docs/api/java/net/Socket.htmlを参照してください

于 2012-10-20T10:44:48.363 に答える