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