Проблема QUdpSocket - PullRequest
       12

Проблема QUdpSocket

1 голос
/ 01 сентября 2010

Я пытаюсь отправить данные по протоколу UDP.Можно ли понять, когда UDP не отправляет данные?

Большое спасибо.

Я пытаюсь использовать сервис, который запускается в клиент.И они отправляют свой IP номер порта в одну секунду.Сервер прослушивает их, и если они не отправляют это сообщение, он понимает, что клиент не подключен.Я делаю это, но я не могу понять, когда они не отправляют?Есть ли у вас какие-либо предложения

Ответы [ 2 ]

0 голосов
/ 01 сентября 2010

Конечно, это возможно, но это может быть сложно.

Я бы порекомендовал:

  1. Убедитесь, что вы не получаете ошибок при вызовах для отправки данных (возможно, выВы указываете неверный адрес, или сокет находится в плохом состоянии или что-то в этом роде.
  2. Попробуйте отправлять сообщения реже, возможно, ваши пакеты сбрасываются вашим стеком локальной сети.
  3. Убедитесь, чтовы действительно правильно слушаете на принимающей стороне, возможно, пакеты делают это, но вы не можете правильно их прочитать.
  4. Рассмотрите проблемы с брандмауэром / NAT, как обычно с UDP.С точки зрения протокола, никогда не включайте информацию о соединении как данные приложения в пакеты, так как тогда они невидимы для NAT-машин.

Следующим шагом может быть копание и попытка получить некоторую обратную связь от стека локальной сети.или, может быть, вынюхивать сеть, чтобы увидеть, делают ли пакеты это некоторым способом, по крайней мере.

0 голосов
/ 01 сентября 2010

Можно проверить результат writeDatagram

Отправляет дейтаграмму с данными размера размера на адрес адреса хоста в порту порта.Возвращает количество байтов, отправленных в случае успеха;в противном случае возвращается -1.

Затем просто проверьте номер возврата, чтобы убедиться, что количество отправленных байтов соответствует ожидаемому

...