Socket UDP ouvrir fermer une socket vite [C/C++] - C++ - Programmation
Marsh Posté le 19-04-2003 à 09:15:54
Le premier WSACleanup(); ne serait pas en trop?? ou alors, il faudrait pas que tu refasses un appel a WSAStartup(...) apres??
Ca me semble sauter aux yeux, en lisant ton code.
A+,
Marsh Posté le 19-04-2003 à 09:55:59
Si ceci fonctionne:
Code :
|
Alors, ca peut en effet etre du a un réemploi de la socket ou de la structure SOCK_ADDR, avant qu'elle ait fini d'envoyer ce qu'elle a a envoyer (auquel cas, ce devrait etre ta 2e machine seulement qui devrait recevoir correctement le message). Essayes alors de tenir compte d'un parametre SO_LINGER dans les options de la socket.
De toute façon, les codes d'erreurs de sendto dans ton source initial devraient permettre de savoir ou est le pb, une fois décriptés avec WSAGetLastError.
A+,
Marsh Posté le 19-04-2003 à 10:03:04
CtHuLhU50 a écrit : salut a tous ! |
Y a une contradiction, là
Sinon, je me demande si tu peux pas utiliser la même socket pour les 2 envois. Puisqu'il n'y a pas de notion de connexion en UDP.
Mais de toute façon, avec UDP, rien ne garantit que ce que tu envoies arrive correctement
Marsh Posté le 19-04-2003 à 12:31:13
essayes de mettre tout le code d'envoi (de //Windows socket init jusqu'au 1er WSACleanup) dans un thread, que tu appeleras 2 fois avec comme parametre l'IP de chaque machine dans le main, avec un wait pour attendre la fin des 2 threads.
ca complique bien le tout, donc c'est mieux.
tu peux aussi faire une fonction a la place d'un thread, mais c'est moins marrant.
Marsh Posté le 19-04-2003 à 15:23:37
CtHuLhU50 a écrit : C bon j'ai trouvé mon erreur merci les gars |
Et si tu nous disais ce que c'etait? ca ne mange pas de pain.
A+,
Marsh Posté le 19-04-2003 à 16:03:02
ben enfaite g pas totalement trouvé car les udp marche k avec l'ip 127.0.0.1 l ' ip local ....
par example kand je fé ca :
c = socket(AF_INET, SOCK_DGRAM, 0);
to.sin_family = AF_INET;
to.sin_addr.s_addr = inet_addr("192.168.0.2" );
to.sin_port = htons(1989);
avec 192.168.0.2 c'est l'ip de ma carte rezo sur mon PC ca ne marche pas ....
Marsh Posté le 19-04-2003 à 08:13:05
salut a tous !
Voila j'essaye d envoye un message a mes 2 PC en rezo enfain faire un prog tt con ki se connecter en UDP é ki envoye un message aux 2 PC mais seulement 1 PC recoit le message .
voici le source :
je pense ke cela et du a la rapidité ke la socket n as pas le temps de se fermer pour apres se réouvrir !
merci a +++