ポート 80 でリッスンする IP アドレス 192.168.0.1 の Java nio サーバーがあります。このサーバーを複数のドメイン/ホスト名にバインドするように構成しました。たとえば、server1、server2、server3 はすべて 192.168.0.1 として解決されます。
クライアントがserver1に接続している場合、サーバー側では、クライアントが他の名前や直接のIPアドレスではなくserver1に接続していることを認識できるため、何か特別なことを行うことができ、クライアントが接続している場合server2 に対して、クライアントが server2 を要求していることを認識できるので、別の特別なことを行うことができます。
問題は次のとおりです。サーバー側のようですが、クライアントが接続しているサーバー名の正しい情報を簡単に取得できません。
私は次のコードを持っています:
ServerSocketChannel ssChannel = (ServerSocketChannel) selKey.channel();
String boundHost = sChannel.socket().getLocalAddress().getHostName();
クライアントがserver2またはserver3に接続しても、boundHostは常にserver1です。