Название: многопоточный сервер qudpsocket Отправлено: koldun90 от Август 22, 2021, 15:01 Здравствуйте решил написать многопоточный сервер на qudpsocket
для начала задача проста сервер принимает сообщение от клиента в основном потоке, потом запускает qrunable из пула потока и шлет ответное сообщение в таске вот код main.cpp Код
udpserver.h Код udpserver.cpp Код mytask.h Код
mytask.cpp Код
С клиента я посылаю сообщение потом жду ответа от сервера а затем клиент завершает работу Проблема заключается в том что когда выполняется Код по логике это вроде правильно чтобы не было утечек но со временем сервер просто перестает отвечать Код в случае если этот блок кода убрать то сервер работает нормально как можно решить данную проблему? qt 4.8 Название: Re: многопоточный сервер qudpsocket Отправлено: qate от Август 23, 2021, 22:12 какаято ересь с передачей дескриптора слушающего сокета
передавай ответ через новый qudpsocket Название: Re: многопоточный сервер qudpsocket Отправлено: koldun90 от Август 25, 2021, 17:58 Через новый udpsocket не получается передать. Клиенту ничего не приходит. Приходится делать setsocketdescriptor.
Клиент соединяется с сервером udp через connect to host Название: Re: многопоточный сервер qudpsocket Отправлено: koldun90 от Август 25, 2021, 19:14 на клиентской части сделал bind сокета 127.0.0.1 порт на выбор ос поставил 0
bind->(127.0.0.1,0) также на клиенте не делаю теперь connecttohost а просто в начале работы делаю writedatagram до этого на клиенте я вообще не биндил адресс а связь устанавливал с помощью connecttohost и тольок потом отправлял датаграму в итоге сервак принимал но в отдельном потоке когда я создавал новый qudpsocket и пытался отправить клиенту на адрес и порт клиенту сообщение не приходило не испускался у него readyread Название: Re: многопоточный сервер qudpsocket Отправлено: qate от Август 25, 2021, 22:45 Через новый udpsocket не получается передать. очень непонятно, я именно так и делаю при передачи без какого либо connecttohost или bind |