wxccxw
Messages postés755Date d'inscriptionsamedi 15 mai 2004StatutMembreDernière intervention30 janvier 2011
-
2 juin 2005 à 12:20
wxccxw
Messages postés755Date d'inscriptionsamedi 15 mai 2004StatutMembreDernière intervention30 janvier 2011
-
15 févr. 2006 à 23:55
Salut,
enfaite, j'aimerai faire un client -> serveur, je maitrise pas mal les socket,
mais je n'ai pas compris a quoi sa sert : recv();
c pour recevoir un socket et la stoker dans un buffer ? c sa ?
donc si on reste sur cette theorie , reparlon de mon client server : jaimerai savoir comment faire sa :
cs_thedestiny
Messages postés56Date d'inscriptionsamedi 3 juillet 2004StatutMembreDernière intervention30 juin 2008 2 juin 2005 à 13:49
recv() ne sert pas vraiment à recevoir un Socket puisqu'un Socket, ce n'est ni plus ni moins une connexion à un PC distant.
intrecv(SOCKETs, char*buf, intlen, intflags);
Cette fonction permet de recevoir un paquet à partir du Socket s ouvert dans le buffer et renvoi la taille du paquet recu. ( au passage ca permet de savoir aussi si la connexion distante a été fermée en vérifiant que la valeur retournée n'est pas <= 0 )
Donc après pour l'adapter à ton programme, c'est tout simple.
Tu fais une boucle jusqu'a que tu ais la réception d'un paquet, tu compares et tu définies ton action en fonction de cela.
while(1)
{
if(recv(Sock, buf, sizeof(buf), 0) <= 0)
{
MessageBox(NULL, "La connexion a été perdue.", "Erreur", 0);
return false;
}
else
break;
}
if(!strcmp(buf, "LE PAQUET"))
{
...
}
else
{
....
}
Voila, mais je tiens à préciser qu'avec un code pareil, si tu comptes faire un trojan tu vas te casser les dents puisque la plupart des firewalls ( logiciels ou matériels, même incorporés dans certains modems ADSL ) bloque le flux sortant suspect :)