Как я уже говорил, Раймонд Чен дает хороший совет по этому вопросу: если вам нужно спросить об ограничениях ОС, вы, вероятно, делаете что-то не так. Протокол IP позволяет использовать не более 65535 портов, и многие из них зарезервированы и недоступны для общего использования. Я хотел бы предложить, чтобы ваши протоколы обмена сообщениями были продуманы более подробно, чтобы ограничения ОС не были проблемой. Я уверен, что есть много хороших ресурсов, описывающих такие системы, и, конечно, здесь есть люди, у которых есть хорошие идеи об этом.
РЕДАКТИРОВАТЬ: Я собираюсь подумать о реализации масштабируемого сервера чата.
Прежде всего, назначьте один порт на сервере, через который клиенты будут обмениваться данными. Всякий раз, когда клиенту необходимо обновить состояние чата (например, новое сообщение пользователя), выполните следующие действия:
create message packet
open port to server
send packet
close port
Затем сервер выполняет следующие действия:
connection request received
get packet
close connection
process packet
for each client that requires updating
open connection to clients
send update packet
close connection
Когда начинается новый сеанс чата, клиент, запускающий сеанс, отправляет на сервер сообщение «новый сеанс» с информацией о клиентах и IP-адресом для ответов. Сервер создает новый сеанс чата и отвечает идентификатором сеанса. Затем клиент отправляет пакеты, содержащие сообщения, которые вводит пользователь, сервер обрабатывает их и пересылает сообщение другим клиентам в том же сеансе. Когда клиент покидает чат, он отправляет сообщение «завершить сеанс» на сервер. Сервер удаляет клиента из сеанса и уничтожает сеанс, когда в сеансе больше нет клиентов.
Надежда, которая заставляет задуматься.