Bonjour,

J'ai un problème avec les sockets. J'ai fait un petit serveur et un client qui se connecte dessus. Mais le client n'arrive pas à ce connecter mais le programme continue quand même. Sans aucun message d'erreur. Le serveur, lui, attend sur la fonction accept et ne voit pas le client.

Voici le code du serveur :
Code c++ : 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
#include <winsock2.h>    	/*socket*/
#include<iostream>
#pragma comment(lib, "ws2_32.lib")
 
using namespace std;
void main()
{
 
	WSADATA WSAData;
	WSAStartup(MAKEWORD(2,0), &WSAData);
 
	SOCKET sock;
	SOCKET csock;
	SOCKADDR_IN sin;
	SOCKADDR_IN csin;
	char buffer[BUFSIZ];;
	sin.sin_addr.s_addr = htonl(INADDR_ANY);
	sin.sin_family      = AF_INET;
	sin.sin_port        = htons(200);
	sock = socket(AF_INET,SOCK_STREAM,0);
	bind(sock, (SOCKADDR *)&sin, sizeof(sin));
 
	listen(sock,0);
 
	/* connection socket */
	int sinsize = sizeof(csin);
	csock = accept(sock, (SOCKADDR *)&csin, &sinsize);
	cout<<"1"<<"\n";
 
	while(1) {
   memset(buffer, '\0', sizeof(buffer)); /*on vide le buffer*/
   recv(csock, buffer, sizeof(buffer), 0);
   cout<<buffer;
  }
}

Voici le code du client :
Code c++ : 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
#include <winsock2.h>    	/*socket*/
#include <iostream>
#pragma comment(lib, "ws2_32.lib")
 
using namespace std;
void main()
{
 
	WSADATA WSAData;
	WSAStartup(MAKEWORD(2,0), &WSAData);
 
	SOCKET sock;
	SOCKADDR_IN sin;
	char buffer[BUFSIZ];
 
	sin.sin_addr.s_addr = inet_addr("25-38-998-154");
	sin.sin_family      = AF_INET;
	sin.sin_port        = htons(200);
	sock = socket(AF_INET,SOCK_STREAM,0);
 
	connect(sock, (SOCKADDR *)&sin, sizeof(sin));
	cout<<"1"<<"\n";
 
	while(1) {
    cout << "MSG : ";
    cin >> buffer;
    send(sock, buffer, sizeof(buffer), 0);
 
	} 
}

Merci de me dire ou est le problème.
VB