Bonjour,

Décidement les sockets ça ne réussit pas à tout le monde !
Je tente de créer un programme (client/serveur) de chat très basique juste pour me familiariser avec les sockets sous windows.
Mon code se compile sans erreur mais je ne parvient pas à envoyer de données. Voici mon code source :

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
 
#include <stdio.h>
#include <winsock2.h>
#include <string.h>
 
 
 
main(void)
{
 
      WSADATA WSAData; // Initialisation des variables
 
      int start_wsa; 
 
      int serveur_socket, client_socket;
      struct sockaddr_in  ip_serveur, ip_client;
      int port = 1000;
      int ip_serveur_size;
 
      int envoyer, recevoir;
      char *message;
      char buffer[512];
      int rec;
 
      start_wsa = 1; 
 
 
      if((start_wsa = WSAStartup(MAKEWORD(2,0), &WSAData)) != 0) {               
              printf("Erreur : Initialisation de winsock impossible \n");
              return 0;               }
 
      memset(&ip_serveur, 0, sizeof(ip_serveur));               
 
      ip_serveur.sin_addr.s_addr = htons(INADDR_ANY); 
      ip_serveur.sin_family = AF_INET; 
      ip_serveur.sin_port = htons(port);             
 
      if((serveur_socket = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET){ 
              printf("Erreur : Création de la  socket impossible \n");
              return 0; 
              }
 
 
      bind(serveur_socket, (struct sockaddr *)&ip_serveur, sizeof(ip_serveur));     
 
      listen(serveur_socket, 0); 
 
      ip_serveur_size = sizeof(ip_client);
 
      if((client_socket = accept(serveur_socket,
                         (struct sockaddr *)&ip_client,
                         &ip_serveur_size)) == -1) { 
               printf("Erreur : Connexion avec le client impossible\n");
               return 0;
               }
 
      printf("Connecte a l'hote\n");
      printf("Tapez votre message\n\n");
 
 
      do
      {
 
      scanf("%s", buffer);
 
      if ((envoyer = write(client_socket,buffer, 512)) == -1) {
             printf("Erreur : Envoi de \"%s\" impossible", buffer);
             return 0;
             }  
 
      if ((recevoir = read(client_socket,buffer, 512)) == -1) {
              printf("Erreur : Reception des donnees impossible");
              return 0;       
              }   
 
      printf("Client : %s\n", buffer);        
 
            }
      while (start_wsa > 0);
 
      return 0;
}
Mon programme n'est pas terminé, je souhaitais juste le tester avant de passer aux finitions.
Je précise que j'utilise "netcat" pour le tester n'aillant pas encore coder le client.

Merci d'avance !