Probleme Recv() [Winsock]

Probleme Recv() [Winsock] - C - Programmation

Marsh Posté le 11-04-2006 à 17:48:15    

Je devellope depuis peu un petit serveur web pour mon savoir personnel seulement voila a peine je commence que les problemes se posent...
 
J'avais jadis un probleme avec la fonction bind() mais il est maintenant résolus. Désormais c'est la fonction recv qui viens m'embeter.
 
En effet mon programme arrive a emmetre avec send() mais ne parviens pas a recevoir donc avec recv()
 
Voici mon code  
 

Code :
  1. #include <winsock2.h>
  2. #include <windows.h>
  3. int main()
  4. {
  5.       WSADATA wsaData;
  6.       int sock,sock2;
  7.      
  8.       if(WSAStartup(MAKEWORD(2,2),&wsaData))
  9.       {printf("Bug : WSAStartup\n" );}
  10.      
  11.       sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  12.       if(sock==INVALID_SOCKET)
  13.       {printf("Bug : Socket\n" );}
  14.      
  15.       SOCKADDR_IN service;
  16.       service.sin_family=AF_INET;
  17.       service.sin_addr.s_addr=INADDR_ANY;
  18.       service.sin_port=htons(80);
  19.      
  20.       if((bind(sock,(SOCKADDR *)&service,sizeof(service)))==SOCKET_ERROR)
  21.       {printf("Bug : Bind <Liaison>\n" );}
  22.      
  23.       if(listen(sock,0)==SOCKET_ERROR)
  24.       {printf("Bug : Listen <Ecoute>\n" );}
  25.      
  26.       char *Buffer;
  27.      
  28.       while(1)
  29.       {
  30.              sock2=accept(sock,NULL,NULL);
  31.              //send(sock2,"test",sizeof("test" ),0);
  32.              recv(sock2,Buffer,sizeof(Buffer),0);
  33.              MessageBox(0,Buffer,Buffer,0);
  34.       }   
  35.                
  36. }


 
J'ai procédé à mes test avec le client telnet ainsi que le client putty mais le recv() me renvois toujours <null> (observé avec printf)

Reply

Marsh Posté le 11-04-2006 à 17:48:15   

Reply

Marsh Posté le 12-04-2006 à 13:50:59    

Code :
  1. char* Buffer; // chaîne vide non initialisée : ce n'est pas un buffer !
  2. recv(sock2, Buffer, sizeof(Buffer), 0);
  3. // sizeof(Buffer) == sizeof(char*) == 4
  4. // écrasement mémoire garanti


Y aurai pas un problème là par hasard ??


Message édité par slash33 le 12-04-2006 à 13:51:45
Reply

Marsh Posté le 12-04-2006 à 13:58:42    

Voilà avec ça http://c.developpez.com/WalrusSock/
et ça http://msdn.microsoft.com/library/ [...] recv_2.asp
tu devrais t'en sortir :jap:


Message édité par slash33 le 12-04-2006 à 13:58:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed