Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Сокет-сервер на Qt с использованием QThread


Автор: erslgoeirjh 26.11.2010, 09:43
Как с помощью библиотеки Qt написать сокет-сервер, который бы выолнялся внутри потока? Для этого надо использовать классы Qthread и QSocket. Основной поток программы вызывает другой поток (назовём его SocketServerThread), внутри которого реализован сокет-сервер.
Этот сокет-сервер слушает сообщение. Если он принимает сообщение, то происходит его обработка на уровне всей программы (с помощью глобальных переменных). Если же сокет-сервер не принимает сообщение, то тогда в потоке SocketServerThread организуется задержка, например, на одну секунду (1000 миллисекунд), а потом сокет-сервер опять слушает сообщение. И так далее--до тех пор, пока не пришло сообщение о том, что надо прекращать работу сокета-сервера. (Например, значения 1 и 2 означают какие-то действия по отношению к основному потоку программы, а значение 3 означает завершение работы сокета-сервера).

Вопрос: как это всё организовать?

Желательно привести пример кода.

Автор: Alca 26.11.2010, 10:15
Ты хочешь, чтоб за тебя все написали?  smile 

Автор: ufna 27.11.2010, 01:21
Прости, но тот же вопрос smile по логике ты сам все расписал. Посмотри QNetwork модуль, примеры к Qt по потокам и по сетям, подумай как совместить в нужном тебе ключе. Не получится -посмотрим что пойдет не так, а так - какие тут примеры то? Весь код? smile

Автор: kosmonaFFFt 27.11.2010, 10:56
По моему QTcpServer есть, и он работает в отдельном потоке уже, так что надо просто отлавливать его сигналы о подключении клиента и обрабатывать их... 

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