Problème de socket

winalbest -  
maily Messages postés 7560 Statut Contributeur -
J'ai un problème avec le code ci dessous puisque nb vaut 0 et apparement rien n'est envoyé mais je ne vois aps pourquoi...pouvez vous m'aidez ?
Merci


#include <stdio.h>
#include <stdarg.h>
#include <winsock2.h>
#include <string.h>
#include <errno.h>


int main(int argc,char ** argv) 
{ 

	   WSADATA WSAData;

   if(!WSAStartup(MAKEWORD(2,0), &WSAData))
   {
      printf("[*] Winsock a ete initialise avec succes.\n");
   }
   else
   {
      printf("Erreur lors de l'initialisation de Winsock, code d'erreur : %d\n", GetLastError());
      system("PAUSE");
      return(-1);
   }

   int lasocket     = 0; 
   if(!(lasocket=socket(AF_INET,SOCK_RAW,IPPROTO_RAW)))return -1; /*ouvre la raw socket*/

struct sockaddr_in sin; /* notre structure sockaddr_in qui contiendra l'adresse de destination */

/* on rempli notre structure sockaddr_in */ 
sin.sin_family = AF_INET;
sin.sin_port=1500;
sin.sin_addr.s_addr = inet_addr("127.0.0.1"); // Adresse de destination

/* hop, nous envoyons notre paquet à destination */
int nb;
char tab[5]="bonj";
if(nb=sendto(lasocket, tab, sizeof(tab), 0, (struct sockaddr *)&sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR)	    
{
	fprintf(stderr, "Erreur lors de l'appel de la fonction sendto. Code erreur : %d\n", WSAGetLastError());	
	WSACleanup();
}
printf("%d",nb);
system("PAUSE");


   return 0; 
}

1 réponse

maily Messages postés 7560 Statut Contributeur 453
 
Bonjour!

à mon avis, il faut que tu rajoute des parenthèses pour l'affectation de nb dans ton if!

if((nb=sendto(lasocket, tab, sizeof(tab), 0, (struct sockaddr *)&sin, sizeof(struct sockaddr_in))) == SOCKET_ERROR)


Bon courage!!

Maily   :-))))
0