Хорошо ли открывать несколько портов на TCP-сервере? - PullRequest
1 голос
/ 06 октября 2010

Tcp-сервер должен обслуживать много клиентов. Если один клиент, один порт сервера и один серверный поток для прослушивания порта, я хочу знать, быстрее ли он?

Если один порт хорош, может кто-нибудьОбъясните разницу между одним портом и несколькими портами в этом случае, спасибо!

Ответы [ 2 ]

2 голосов
/ 06 октября 2010

Проблема с использованием нескольких портов для достижения этого заключается в том, что каждый из ваших клиентов будет иметь определенный номер порта. В зависимости от количества клиентов может потребоваться огромное количество бухгалтерии.

Как правило, для tcp-сервера, который должен обслуживать несколько клиентов, у вас есть «основной» поток, который прослушивает порт и принимает подключения к этому порту. Затем этот поток передает подключенный сокет другому потоку для обработки и возвращается к прослушиванию.

Чтобы получить знания о сетевом программировании Unix, прочитайте " Книга Стивенса "

1 голос
/ 06 октября 2010

Обычно говоря * сервер будет выделять свои собственные исходящие сокеты для каждого подключенного клиента (и вам не нужно знать эти номера). Каждый дескриптор клиентского соединения будет содержать ссылки на порты.

При определении порта подключения к серверам вы будете выделять сокет для входящих клиентов для подключения. Использование нескольких сокетов не дает выигрыша в производительности, фактически выделение дополнительных сокетов покажет снижение производительности (хотя для каждого порта оно будет крошечным.)

обновление ...

Кстати, назначение нескольких входящих портов (особенно большого диапазона) для подключения клиентов также является безумным. С точки зрения обеспечения удобства использования и обслуживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...