Сокет Java - порт сокета
Я написал сервер в Java для моего приложения, который должен однозначно идентифицировать каждое соединение. В настоящее время я идентифицирую каждое соединение через порт SocketChannel's Socket.
Является ли порт сокета номером, данным JVM?
Если это так, означает ли это, что максимальное максимальное количество соединений ограничено количеством портов, доступных для этого типа соединения? (этот вопрос может быть реторическим, учитывая ответ на вопрос 1, но лучше, чем потом сожалеть!)
Любые разработчики Java, у которых есть лучшие советы для уникальной идентификации каждого соединения?
1 ответ
В настоящее время я идентифицирую каждое соединение через порт SocketChannel's Socket.
Если вы имеете в виду локальный порт, ваш код уже не работает.
Является ли порт сокета номером, данным JVM?
Нет, он предоставляется TCP, если вы сами не указали его в коде.
Если это так, означает ли это, что максимальное максимальное количество соединений ограничено количеством портов, доступных для этого типа соединения?
Нет. Локальный порт для всех сокетов, принятых из одного и того же сокета сервера, такой же, как и сокеты сервера.
Любые разработчики Java, у которых есть лучшие советы для уникальной идентификации каждого соединения?
Вы должны идентифицировать его по кортежу {локальный IP-адрес, локальный порт, удаленный IP-адрес, удаленный порт}.