Winsocks2

[Résolu]
Signaler
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011
-
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
-
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

Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006
1
Faut ajouter le zéro final.

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

buffer[ret] = 0;
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Il faut vider la mémoire de buffer avec memset(buffer, 0, sizeof(buffer)) ou ZeroMemory(buffer, sizeof(buffer))(c la même chose).
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
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++
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

merci mais j'ai encore

socket======== en plus cour :( mais sinon sa marche deja mieux
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

non enfaite c'est bon merci :)
Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
ret = recv(csock, buffer, sizeof(buffer), 0);
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
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++
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
salut,
et pour eviter un overflow:

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

a+