Probleme de socket (envoi)

SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013 - 22 avril 2004 à 17:22
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013 - 24 avril 2004 à 16:54
Salut !!!

Voila g realisé nn programme pour m'envoyer des socket a moi meme ( c pr tester)
*********Client********
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
SOCKET sock;

void client()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);

char *buffer = new char[255];

//SOCKET sock;
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr("127.0.0.1");
sin.sin_family = AF_INET;
sin.sin_port = htons(23);
sock = socket(AF_INET,SOCK_STREAM,0);
bind(sock, (SOCKADDR *)&sin, sizeof(sin));

connect(sock, (SOCKADDR *)&sin, sizeof(sin));

//recv(sock, buffer, sizeof(buffer), 0);

}

et le probleme c ke pour evoyer des message j'utilise
void envoi(char *a) {
//send(sock, a , sizeof(a), 0);
send(sock,"vb dgffg dsg \r\n", 19, 0);
}

et sur mon serveur (il affiche recu : puis ce kil recoit) je voit
recu: vb dgffg dsg
recu : recu : recu : recu : recu :
en fait unikement le premier message est recu apres il detecte les nouveau message mais n'afiche ke des vide !!
Le serveur marche bien je l'ai testé avec un autre prog !!!
Si kelkun a une idée ???

2 réponses

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
22 avril 2004 à 20:35
essaie ca :
void envoi(char* a)
{
send(sock,a,strlen(a),0); // strlen et pas sizeof
}

la ca t'a fait ca skeu t'essaies d'envoyer 19 octets, alors ke ta chaine de test "vb dgffg dsg \r\n" en fait moins, donc a la fin, t'as des recu en trop.
0
SnOOpss Messages postés 571 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 5 décembre 2013
24 avril 2004 à 16:54
C bon ca marche comme ca !!!
Merci beaucoup !!!
0
Rejoignez-nous