2010-09-01 13 views
1

J'essaie d'envoyer des données en utilisant le protocole UDP. Est-il possible de comprendre quand UDP n'envoie pas de données?Problème QUdpSocket

Merci beaucoup.

J'essaye d'obtenir un service qui fonctionne dans le client. Et ils envoient leur adresse IP un numéro de port en une seconde. Le serveur les écoute et s'ils ne transmettent pas ce message, ils comprennent que le client n'est pas connecté. Je fais cela mais je ne comprends pas quand ils ne l'envoient pas? Avez-vous une suggestion

Répondre

0

Vous pouvez vérifier le résultat de writeDatagram

envoie des datagrammes à des données de taille de taille à l'adresse d'adresse hôte au port port. Renvoie le nombre d'octets envoyés en cas de succès. sinon renvoie -1.

Ensuite, il suffit de cocher le numéro de retour pour vous assurer que le nombre d'octets envoyés est ce que vous attendiez

+0

Merci beaucoup de votre réponse, j'essaie d'un servis qui se heurte au client. Et ils envoient leur adresse IP un numéro de port en une seconde. Le serveur les écoute et s'ils ne transmettent pas ce message, ils comprennent que le client n'est pas connecté. Je fais cela mais je ne comprends pas quand ils ne l'envoient pas? Avez-vous une suggestion? – ayla

0

Bien sûr, il est possible, mais il pourrait être difficile.

Je recommande:

  1. Vérifiez que vous ne recevez pas les erreurs de vos appels à envoyer des données (peut-être vous spécifiez une mauvaise adresse, ou la prise est en mauvais état ou quelque chose).
  2. Essayez d'envoyer plus rarement, peut-être vos paquets sont supprimés par votre pile réseau local.
  3. Assurez-vous que vous écoutez correctement à la réception, peut-être que les paquets le font mais vous ne parvenez pas à les lire correctement. Envisagez les problèmes de pare-feu/NAT, comme d'habitude avec UDP. Au protocole, n'incluez jamais les informations de connexion en tant que données d'application dans des paquets, car elles sont invisibles pour les machines NAT.

L'étape suivante pourrait être creuser et d'essayer d'obtenir des commentaires de la pile de réseau local, ou peut-être renifler le réseau pour voir si les paquets font une façon au moins.

+0

Merci beaucoup de votre réponse, j'essaie d'un servis qui se heurte au client. Et ils envoient leur adresse IP un numéro de port en une seconde. Le serveur les écoute et s'ils ne transmettent pas ce message, ils comprennent que le client n'est pas connecté. Je fais cela mais je ne comprends pas quand ils ne l'envoient pas? Avez-vous une suggestion? – ayla

+0

@ayla. Merci. N'hésitez pas à voter/accepter la réponse si vous le trouvez utile. Je ne peux pas totalement suivre votre description, mais peut-être que vous avez des problèmes de pare-feu/NAT, j'ai ajouté un élément dans ma liste pour ceux-ci, aussi. – unwind