Bonjour à tous, j'essaye de faire se connecter un client c# sur un serveur C++ à l'aide des sockets mais j'ai invariablement le même msg d'erreur :

le serveur a expressément refusé la connexion

voici le 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
 
//code serveur
...
serverAddr.sin_family = AF_INET;
serverAddr.sin_port =  12345;
serverAddr.sin_addr.s_addr = INADDR_ANY;
 
 
 
if( ( listeningSocket = socket( AF_INET, SOCK_STREAM, 0 ) ) == INVALID_SOCKET ){
		cerr << "ne peut créer la socket. Erreur n° " << WSAGetLastError()<< endl;
		WSACleanup();
		return 1;
	}
	BOOL opt=1;
	 setsockopt ( listeningSocket,SOL_SOCKET,SO_REUSEADDR,(char*)&opt,sizeof(opt));
 
	if( bind( listeningSocket, (SOCKADDR *)&serverAddr, sizeof( serverAddr ) ) == SOCKET_ERROR ){
		cerr << "bind a échoué avec l'erreur " << WSAGetLastError() << endl;
		cerr << "Le port est peut-être déjà utilisé par un autre processus " << endl;
		closesocket( listeningSocket );
		WSACleanup();
		return 1;
	}
 
	if( listen( listeningSocket, 5 ) == SOCKET_ERROR ){
		cerr << "listen a échoué avec l'erreur " << WSAGetLastError() << endl;
		closesocket( listeningSocket );
		WSACleanup();
		return 1;
	}
et voici le code côté client

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
//côté client
 
IPHostEntry hostEntry =  Dns.GetHostEntry("localhost");
 
 
socket_client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 
 
IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 12345);
 
 
socket_client.Connect(endPoint);