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 :
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
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; }
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);
Partager