Russian Qt Forum

Qt => Работа с сетью => Тема начата: serega-5508 от Май 06, 2011, 13:42



Название: клиент-серверное приложение на базе TCP-сокетов
Отправлено: serega-5508 от Май 06, 2011, 13:42
у меня есть приложение клиент и сервер. У меня вопрос: как мне  обеспечивать одновременную (параллельную) работу со многими клиентами? что мне для этого надо сделать? Спасибо большое!


Название: Re: клиент-серверное приложение на базе TCP-сокетов
Отправлено: SimpleSunny от Май 06, 2011, 14:16
А сколько клиентов предполагается? И что значит "дновременную (параллельную) работу со многими клиентами"?


Название: Re: клиент-серверное приложение на базе TCP-сокетов
Отправлено: andrew.k от Май 06, 2011, 17:12
смотри QTcpServer и кутишные примеры.
Описание QTcpServer (http://doc.qt.nokia.com/latest/qtcpserver.html)
Там же есть примеры.
Fortune Server Example (http://doc.qt.nokia.com/latest/network-fortuneserver.html)
и многопоточная версия
Threaded Fortune Server Example (http://doc.qt.nokia.com/latest/network-threadedfortuneserver.html)


Название: Re: клиент-серверное приложение на базе TCP-сокетов
Отправлено: merke от Май 06, 2011, 17:17
Ну смотри... смотря какие объемы данных будут передаваться в обе стороны. Если обмен простыми командами и клиентов не очень много, то архитектура сервера простейшая ни каких потоков, просто на каждое новое соединение создаешь сокет и далее обрабатываешь данные, хотя обработку можешь вынести в отдельный поток. Если же объемы передаваемых данных большие и количество клиентов огого как большое, то тут уже надо будет придумывать сложную структуру сервера. И не надо ударяться сразу в такую мысль: на каждое соединение отдельный поток, это утопия. Лучше например разбить по нагрузке, к примеру на поток 10 соединений.
Расскажи для каких целей. Больше информации надо


Название: Re: клиент-серверное приложение на базе TCP-сокетов
Отправлено: andrew.k от Май 06, 2011, 17:22
Ну смотри... смотря какие объемы данных будут передаваться в обе стороны. Если обмен простыми командами и клиентов не очень много, то архитектура сервера простейшая ни каких потоков, просто на каждое новое соединение создаешь сокет и далее обрабатываешь данные, хотя обработку можешь вынести в отдельный поток. Если же объемы передаваемых данных большие и количество клиентов огого как большое, то тут уже надо будет придумывать сложную структуру сервера. И не надо ударяться сразу в такую мысль: на каждое соединение отдельный поток, это утопия. Лучше например разбить по нагрузке, к примеру на поток 10 соединений.
Расскажи для каких целей. Больше информации надо
Я думаю судя по вопросу, твои предложения излишни. :)
Ты предлагаешь тому, кто только что получил права купить себе спортивный болид, если утрировать :)
Подозреваю, что программа, это какой-нибудь чат. Разве бывают программисты, которые не писали чат? :)


Название: Re: клиент-серверное приложение на базе TCP-сокетов
Отправлено: merke от Май 06, 2011, 17:24
Если хочешь параллельную работу, потоки тебе в помощь, иначе всё будет обрабатываться в порядке очереди


Название: Re: клиент-серверное приложение на базе TCP-сокетов
Отправлено: serega-5508 от Май 07, 2011, 00:25
спасибо! уже разобрался!