У меня есть сервер java nio с адресом ip 192.168.0.1, прослушивающий порт 80. Я настроил этот сервер для привязки к нескольким именам доменов/хостов, скажем, server1, server2, server3 все разрешено как 192.168.0.1.Java Server Socket, связывающий несколько имен доменов/хостов
Теперь я надеюсь, что если клиент подключится к серверу 1, на стороне сервера, я могу узнать, что клиент подключается к server1 вместо других имен или прямого ip-адреса, так что я могу сделать что-то особенное, и если клиент подключается к серверу2, я могу узнать, что клиент запрашивает server2, поэтому я могу сделать что-то еще особенное и так далее.
Теперь возникает вопрос: кажется, на стороне сервера, я не могу легко получить правильную информацию, к которой подключается имя моего клиента.
У меня есть код последующие:
ServerSocketChannel ssChannel = (ServerSocketChannel) selKey.channel();
String boundHost = sChannel.socket().getLocalAddress().getHostName();
Но это не работает, boundHost всегда сервер1 даже если клиенты подключаются к server2 или сервере3.
Спасибо fge за ответ. Итак, есть ли вероятность, что Java или даже C могут получить эту информацию? На самом деле я надеюсь создать мультиплексор/прокси-сервер уровня TCP. Я знаю, что Apache2 имеет прокси-модуль, который фактически взламывает протокол, чтобы получить эту информацию. Но я не хочу этого делать. Я надеюсь сделать его полностью прозрачным из протоколов верхнего уровня. –
Или это просто технически абсолютно невозможно? Благодарю. –