Сервер получает данные после установления соединения - PullRequest
0 голосов
/ 14 января 2012

Сервер прослушивает, скажем, порт 3000. Когда он получает запрос на соединение и соединение успешно, если я вызываю функцию, скажем, «getRemotePort», он скажет 1234. Мой вопрос, сервер будет отправлять данные удаленному устройству (клиенту) через порт 1234, но как быть наоборот? Будет ли клиент продолжать отправлять данные на тот же порт, в данном случае 3000? То есть все, что получит сервер (запросы на подключение и другие данные), будет проходить через один и тот же порт?

1 Ответ

1 голос
/ 14 января 2012
  1. Да, это будет
  2. Это не проблема.

Дело в том, что соединение определяется (LocalIP, LocalPort, RemoteIP,RemotePort) tupel - это единственная комбинация, которая должна быть уникальной.

С точки зрения производительности это тоже не проблема: порт - это логическая конструкция, которая не влияет на пропускную способностьсоединение, за исключением некоторых крайних случаев (Очень высокая задержка в сочетании с очень высокой пропускной способностью может создать случай, когда одно соединение не может насытить физический канал, поэтому второе соединение, требующее второго порта, может ускорить процесс.что даже в этом случае виноват не счетчик портов, а счетчик соединений - они просто оказываются 1: 1)

...