2015-05-02 3 views
1

Я написал сервер в Java для моего приложения, которое должно однозначно идентифицировать каждое соединение. В настоящее время я идентифицирую каждое соединение портом SocketChannel's Socket.Java socket - порт сокета

  1. Является ли порт сокета номером, предоставленным JVM?

  2. Если это так, означает ли это, что максимальное максимальное количество подключений ограничено количеством портов, доступных для этого типа соединения? (этот вопрос может быть рецензируемым, учитывая ответ из вопроса 1, но лучше безопасный, чем извините!)

  3. Любые разработчики Java, у которых есть какие-либо советы по уникальному определению каждого соединения?

ответ

2

я в настоящее время идентифицировать каждое соединение по порту Гнездо SocketChannel в.

Если вы имеете в виду локальный порт, ваш код уже не работает.

Является ли порт гнезда номером, заданным JVM?

Нет, он предоставляется по TCP, если вы не указали его сами в коде.

Если это так, означает ли это, что максимальное максимальное количество подключений ограничено количеством портов, доступным для этого типа соединения?

No. Локальный порт для всех сокетов, принятых из одного и того же серверного сокета, аналогичен серверному сокету.

Любые разработчики Java, которые имеют лучшие советы для уникального определения каждого соединения?

Вы должны идентифицировать его по кортежу {локальный IP-адрес, локальный порт, удаленный IP-адрес, удаленный порт}.

Смежные вопросы