Winsocks2

Résolu
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011 - 18 févr. 2006 à 19:15
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 - 19 févr. 2006 à 11:51
voila :) je recupere le packet entrant envoyer par Telnet sur le port 256.

if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
recv(csock, buffer,strlen(buffer),0);
if(strstr(buffer,"p"))
{
printf("%s",buffer);
}

system("pause");
}

voila donc quand je recoi un packet, je l'affiche et sa m'afiche :
packet========================================||

8 réponses

Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006 1
18 févr. 2006 à 19:29
Faut ajouter le zéro final.

int ret = recv(csock, buffer,strlen(buffer),0);

buffer[ret] = 0;
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 févr. 2006 à 19:55
Il faut vider la mémoire de buffer avec memset(buffer, 0, sizeof(buffer)) ou ZeroMemory(buffer, sizeof(buffer))(c la même chose).
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
18 févr. 2006 à 21:21
Rien à vider dans buffer.
Comme dit par Zootella, faut un 0 final pour bosser dessus en tant que chaine et rien de plus.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
18 févr. 2006 à 22:32
merci mais j'ai encore

socket======== en plus cour :( mais sinon sa marche deja mieux
0

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

Posez votre question
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
18 févr. 2006 à 22:33
non enfaite c'est bon merci :)
0
cs_magma Messages postés 198 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 18 mars 2011 1
18 févr. 2006 à 22:54
ret = recv(csock, buffer, sizeof(buffer), 0);
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
19 févr. 2006 à 09:15
ah OUIIIIII je n'avais même pas vu tant c'était énorme le strlen en param, bravo magma.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
19 févr. 2006 à 11:51
salut,
et pour eviter un overflow:

int ret = recv(csock, buffer,sizeof(buffer)-1,0);
if (ret >= 0)
buffer[ret] = 0;

a+
0