2012-01-14 9 views
0

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

+0

Вы говорите о конкретном протоколе/приложении/и т. д.? Потому что сейчас я думаю, что все, что мы могли бы сказать, это «Это зависит от того, как вы его программируете». –

+0

Я реализовал сервер на Java, к которому подключено несколько устройств Android, и я действительно не знаю, как работают соединения. Сервер обрабатывает несколько подключений на порту 3000 (как запросы на соединение, так и другие данные) или что ... – AndreiBogdan

ответ

1
  1. Да будет
  2. Это не проблема.

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

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

+0

Итак, если бы я закрыл все порты на сервере и оставил только 3000, например, сервер может обрабатывать все подключения через этот порт? ... ему не нужно больше – AndreiBogdan

+0

Да, это так. –

+0

Большое спасибо. – AndreiBogdan