Bonsoir tout le monde =),
J'ai été bloqué toute la journée par un ***** send qui n'a pas l'air très actif, et je demande donc renseignement à plus fort que moi.
Pour être clair, après connection je fais un send(), qui me retourne bien le nombre de caractere envoyés, et WSAGetLastError() ne me retourne rien du tout. Par contre, avec un sniffer comme Ethereal, je n'ai rien du tout hormis, les SYN, ACK de connection, et les messages du serveur, mais mon programme client n'envoit rien du tout.
Avec un de mes programmes, ca fonctionne à chaque fois, avec un autre jamais, et le 3eme, aléatoirement.
Ca me rend fou, surtout que j'ai droit à des réactions completement illogiques de la part de ces programmes !
Voici le code que j'exécute lors d'un évenement :
J'ai pris le serveur smtp de wanadoo au hasard, juste pour pouvoir me connecter à un serveur. Et c'est ce meme code que j'utilise dans d'autres programmes qui fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 SOCKET sock; WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKADDR_IN sin; sin.sin_addr.s_addr = inet_addr("209.123.181.179"); sin.sin_family = AF_INET; sin.sin_port = htons(25); sock = socket(AF_INET,SOCK_STREAM,0); bind(sock, (SOCKADDR *)&sin, sizeof(sin)); connect(sock, (SOCKADDR *)&sin, sizeof(sin)); char* msg1 = "Un paquet que je voudrais voir apparaitre dans ethereal !!"; int retour = send(sock, msg1, strlen(msg1), 0); char problem = WSAGetLastError(); closesocket(sock); WSACleanup();
La seule différence avec celui qui fonctionne toujours, c'est que je travail avec la librairie graphique : wxwidgets. Sur celui qui fonctionne quand il veut, j'exécute ce morceau de code dès l'exécution du programme.
Donc voila j'aimerais savoir de quoi ca pourrait venir. Merci !
Partager