Bonjour,
Je souhaite faire communiquer deux programmes avec des sockets, l'un en Java, l'autre en C++.
Mon programme Java fait office de serveur et celui en C++ de client.
Côté Java je n'ai pas de soucis (j'ai déjà testé de faire ma communication avec deux programmes Java et ça marche nickel)
Par contre je n'obtiens pas du tout ce que je veux avec un client c++ (je dois forcément foirer un truc un moment), sur ma console, j'ai un caractère bizarre qui s'affiche (la fraction 1/4 suivi d'un Y majuscule avec un accent) et ce, peu importe ce que j'envoie (un int, un string, ...)
Ci-dessous mon code C++, je peux vous donner le code Java si vous le souhaitez
Merci d'avance
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 #include <iostream> #include <winsock2.h> #include <stdio.h> #pragma comment(lib, "ws2_32.lib") using namespace std; int main() { WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKADDR_IN sin; char buffer[32]; sin.sin_addr.s_addr = inet_addr("127.0.0.1"); sin.sin_family = AF_INET; sin.sin_port = htons(13370); sock = socket(AF_INET,SOCK_STREAM,0); if(connect(sock, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR) { cout<<"connexion"<<endl; if(recv(sock, buffer, 32, 0) != SOCKET_ERROR) { cout<<"reception : "<<buffer<<endl; printf("%s", buffer); } else cout<<"fail reception"; } else cout << "fail connexion"; closesocket(sock); WSACleanup(); return 0; }
pikmin
Partager