Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > Коннект к одному серверу нескольких клиентов


Автор: sindi8 8.6.2006, 14:56
В продолжение http://forum.vingrad.ru/index.php?showtopic=98399 топика - как мне сделать так, чтобы к серверу можно было приконнектить несколько клиентов? У меня сейчас получается, что клиенты коннектятся, но сообщения их становятся в очередь, и проходят только после закрытия клиента, "стоящего" в очереди впереди. Конечная цель - написать сервер, который бы отправлял данные клиентам по собывтиям в серверной форме, и чтобы сообщения слать либо сразу всем, либо изберательно конкретному клиенту. 

Автор: arilou 10.6.2006, 22:39
sindi8, такая штука достигается с помощью динамического распределения портов. Сервер получает соединение на основном порту, открывает новый и сообщает клиенту его номер. После этого клиент закрывает соединение с основным и открывает с новым портом. Таким образом, основной порт снова становится доступен для новых клиентов. 

Автор: sindi8 14.6.2006, 09:43
arilou, спасибо. Идея ясна. Пока оставлю как есть - клиентов 3 и расширяться все это не будет, но на будущее учту.  smile  

Автор: sindi8 15.6.2006, 12:14
Кстати, вот http://www.gotdotnet.ru/Downloads/Examples/321422.aspx неплохой пример по указанной теме. Мне помог решить в общем-то все поставленные задачи. 

Автор: Dayana 9.8.2006, 13:55
Можно каждое новое соединение открывать в своем потоке... тоже хорошо работает...  smile 

Автор: arilou 9.8.2006, 14:02
Dayana, а боян то зачем поднимать  smile 

Цитата(Dayana @  9.8.2006,  13:55 Найти цитируемый пост)
Можно каждое новое соединение открывать в своем потоке

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

Автор: albert21 4.10.2006, 18:55
http://www.microsoft.com/Rus/Msdn/Magazine/2005/08/Winsock.mspx
Рассматривается сервер на основе ассинхронных сокетов

Автор: Grambler 19.3.2007, 02:26
а я пишу сервер на асинхронных сокетах 
сколько вообще клиентов могут нормально висеть на одном порту сервера ?
объемы данных небольшие 
примерно раз в минуту от клиента по 200 байт
и время от времени от сервера клиентам 2.5 Кб
у меня планируется до 50 на 1-м этапе 
дальше возможно больше

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)