Sockets

deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 6 avril 2006 à 14:22
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 - 8 avril 2006 à 19:35
Bonjour a tous,





Voila je me suis mis récement au socket et j'ai coder un client et un
serveur. Tout bête le client envoie un message ( "hello you" ) au
serveur qui doit l'afficher. Seulement voila, le serveur recoit bien le
message a chaque fois qu'il est transmit, mais m'affiche des caractères
qui n'ont rien à voir avec le message envoyé. un peut comme si il
affichait une zone mémoire quel quonque. Voici les 2 codes :



client :



WSADATA wsaData;

SOCKET sock1;

SOCKADDR_IN sin;



WSAStartup(MAKEWORD(2,0),&wsaData);

sin.sin_addr.s_addr = inet_addr("127.0.0.1");

sin.sin_family = AF_INET;

sin.sin_port = htons(23); /* port telnet */



sock1 = socket(AF_INET,SOCK_STREAM,0);

bind(sock1,(SOCKADDR*)&sin,sizeof(sin));



getch();

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

send(sock1,"hello you",11,0);



closesocket(sock1);

WSACleanup();







serveur :







WSADATA wsaData;

SOCKET sock1;

SOCKET csock;

SOCKADDR_IN sin;

SOCKADDR_IN csin;

char szBuffer[11];

int iSizeSin;



WSAStartup(MAKEWORD(2,0),&wsaData);

sin.sin_addr.s_addr = INADDR_ANY;

sin.sin_family = AF_INET;

sin.sin_port = htons(23); /* port telnet. */



sock1 = socket(AF_INET,SOCK_STREAM,0);

bind(sock1,(SOCKADDR*)&sin,sizeof(sin));

listen(sock1,0);

for(;;){

iSizeSin = sizeof(csin);

if(csock = accept(sock1,(SOCKADDR*)&csin,&iSizeSin) != INVALID_SOCKET){

recv(csock,szBuffer,sizeof(szBuffer),0);

printf("\nMessage : ",szBuffer);

getch();

}

}



Quelqu'un peut il m'aider svp?

17 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
6 avril 2006 à 14:45
int ret = recv(csock,szBuffer,sizeof(szBuffer),0);
szBuffer[ret] = 0;

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
6 avril 2006 à 15:04
Ou sinon, vide ton szBuffer. memset(szBuffer, 0, sizeof(szBuffer))

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
6 avril 2006 à 15:17
Ca n'avait pourtant rien à voir avec les sockets :(

if(!Meilleur("Joky")) return ERREUR;<
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
6 avril 2006 à 15:21
Ha ben on peut pas sasvoir quand l'erreure arrive ;)

___________________________________________
Les plus grands esprits trouvent toujours une solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
6 avril 2006 à 15:22
Ben généralement quand on voit des caractères bizarres à la fin d'une chaîne qu'on maîtrise bien on se doit bien se douter qu'il manque un 0 final...

if(!Meilleur("Joky")) return ERREUR;<
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
6 avril 2006 à 15:30
ouaip ... sauf que ca ne marche pas :D
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
6 avril 2006 à 15:33
je me serai douté qu'il fallait ajouter un zero final si au moin il
mettant la phrase envoyée dans szBuffer mais rien, il n'y a aucune
trace de celle-ci , d'ou c'est pas le 0 final qui pose problème.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
6 avril 2006 à 15:36
A tu essayer de vider szBuffer avant son utilisation?

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
6 avril 2006 à 15:41
oui j'ai tous esseye, je suis persudé que cela vien du socket. car en
faite rien arrive dans szBuffer. quand je le vide avant et ben il
m'affiche plus rien d'ou je suis certain que mon message n'arrive pas a
destination met que la connection s'opère bien.
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
6 avril 2006 à 16:21
Ouais c'est probable. J'ai tester ton code chez moi et ça ne marche pas non plus.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
6 avril 2006 à 16:23
Bah au cas ou lol, essaye un autre port que telnet :)

if(!Meilleur("Joky")) return ERREUR;<
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
6 avril 2006 à 18:49
non j'ai deja esseye aussi avec un autre port, mais cela ne vas tjrs pas :)
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
6 avril 2006 à 21:36
Salut,

Débuguer un prog qui ne contient strictement aucun traitement d'erreur, faut etre motivé...
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
7 avril 2006 à 09:53
oui je sais :D met en mm temps faut dire il a tellement de lignes que
c'est impossible. allons restons sérieux c'est un serveur et un client
tous ce qu'il y a de plus basic. (ouai je sais il vas pas mdr mais bon
il est basic quand mm )
0
anonyme_man_in_this_world Messages postés 161 Date d'inscription samedi 25 juin 2005 Statut Membre Dernière intervention 1 août 2006
7 avril 2006 à 18:09
salut ,
je crois que le bind du client pourra te poser des probleme ! enleve la ligne comportant

le bind sur le client et dit nous ce que tu recoit .
0
anonyme_man_in_this_world Messages postés 161 Date d'inscription samedi 25 juin 2005 Statut Membre Dernière intervention 1 août 2006
7 avril 2006 à 18:09
salut ,
je crois que le bind du client pourra te poser des probleme ! enleve la ligne comportant

le bind sur le client et dit nous ce que tu recoit .
0
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
8 avril 2006 à 19:35
cela ne change rien, j'ai remarqué que en faite la fontction send()
renvoie -1 comme nombre de bytes lus, donc une erreure, mais je ne voi
pas ou :s
0
Rejoignez-nous