Из этой документации getLocalAddress
вернет null
, если конечная точка не представляет собой сетевое соединение. Итак, при каких обстоятельствах конечная точка представляет соединение, отличное от сетевого? И какие у них связи?
Использование FastCGI, UnixSocket и LocalConnector — это некоторые примеры подключений, которые имеют EndPoint
, но не являются сетевыми подключениями, у которых есть java.net.InetSocketAddress
, доступный для представления удаленной конечной точки.
Примечание. Jetty 10 рассматривает возможность изменения этого API с возврата java.net.InetSocketAddress
на просто java.net.SocketAddress
(поскольку все три из вышеперечисленных могут возвращать разновидности SocketAddress
).
FastCgiSocketAddress
— указывает на каталог на дискеUnixSocketAddress
— указывает на файл сокета (обычно на диске)LocalSocketAddress
— реализация без общедоступных методов (поскольку это чисто соединение в памяти)В других проектах есть варианты in-memory или mock-коннекторов, которые также представляют собой EndPoint
без InetSocketAddress
.