Разъемы Windows - PullRequest
       5

Разъемы Windows

1 голос
/ 08 августа 2011

У меня есть приложение Client Server, написанное на C #

Сервер прослушивает указанный порт. Клиент отправляет данные на этот сервер, а остальные клиенты извлекают эти данные. Точно так же все клиенты используют этот сервер.

Я хотел знать, есть ли ограничение на количество соединений, которое сокет может разрешить с надежной передачей данных, как без потери данных? Типичный размер данных, которые передаются на сервер и затем передаются клиентам, составляет около 40 кбит / с.

Не могли бы вы помочь мне понять, какие параметры следует учитывать при разработке такого решения?

Ответы [ 2 ]

0 голосов
/ 09 августа 2011

На самом деле один сокет не будет обрабатывать все данные на сервере. На сервере у вас есть прослушивающий сокет, единственная цель которого - принимать входящие соединения от ваших клиентов. Затем вы получаете одно соединение / сокет для каждого клиента.

Операционная система попытается равномерно распределить пропускную способность между всеми подключенными сокетами (вашими и другими приложениями). Сокеты UDP имеют более высокий приоритет, чем сокеты TCP.

Сервер может обрабатывать столько клиентов, сколько вам нужно, если пропускная способность сети может справиться с этим. Если у вас есть несколько клиентов, вы можете использовать потоки для сокетов / клиентов, а если у вас их много, я предлагаю вам прочитать об асинхронной обработке (методы BeginXX / EndXX).

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

0 голосов
/ 08 августа 2011

Пропускная способность восходящего канала будет вашим самым большим узким местом. Если под «40 кбит / с» вы подразумеваете килобиты в секунду вместо килобайтов в секунду, то это дает вам 5 КБ / с. Если пропускная способность восходящего канала составляет 1 мегабит в секунду (128 килобайт в секунду), то у вас может быть только (128/5) 25 клиентов.

Чтобы разрешить много подключений к одному порту, HTTP-серверы делают это без проблем.

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