@zhopop

QUdpSocket через какое-то время перестает читать порт если с него отправлять сообщения на закрытый порт, как исправить?

У меня есть udp сокет, который я привязываю привязываю к порту и читаю/отправляю данные с него. Все работает хорошо, НО если закрыть порт куда я отправляю сообщения, логичным образом начинают приходить ответ destination port is unreachable и через какое-то время сокет просто отвязывается и даже если поднять сервер куда он слал сообщения он уже работать не будет (как и принимать так и отправлять). Мне же нужно, что даже если сервер, куда он отсылает сообщения, лежит он по прежнему продолжал отсылать ему сообщения пока тот не встанет. То, как быстро отвяжется сокет при лежащем серве зависит от того как много сообщений на него отправлять. Вроде нашел как эта проблем решает для WinSOCK :

DWORD dwBytesReturned = 0;
int bNewBehavior = 1;
if (::WSAIoctl(socket, SIO_UDP_CONNRESET, &bNewBehavior, sizeof(bNewBehavior),
NULL, 0, &dwBytesReturned, NULL, NULL) == SOCKET_ERROR) {
// not to worry isBogusUdpReadNotification() should handle this otherwise
int err = WSAGetLastError();
WS_ERROR_DEBUG(err);
}

Вопрос в том, как это реализовать для QUdpSocket
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы