bonjour tous le monde
je programme une communication entre deux ordinateurs à l'aide des sockets, j'envois des message du client vers le serveur et du serveur vers le client y a pas de problèmes.
mais ce que je veux c'est que par exemple lorsque j'envois un message du client vers le serveur j'utilise une condition if pour dire que j'ai reçu le bon message
comment comparaître le contenu du buffer1 que j'ai envoyé du client vers le serveur et dire par exemple si j'envois 111 et faire une condition if pour ce contenu du buffer1 si == 111, j'affiche un message t dire que c'est le bon message
j'utilise visual studio 2017
merci
code 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 //.........................................client....................................////// #include <winsock2.h> #include <iostream> #pragma comment(lib, "ws2_32.lib") #pragma warning(disable:4996) using namespace std; int main() { WSADATA WSAData; SOCKET server; SOCKADDR_IN addr; WSAStartup(MAKEWORD(2, 0), &WSAData); server = socket(AF_INET, SOCK_STREAM, 0); addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // replace the ip with your futur server ip address. If server AND client are running on the same computer, you can use the local ip 127.0.0.1 addr.sin_family = AF_INET; addr.sin_port = htons(15555); connect(server, (SOCKADDR *)&addr, sizeof(addr)); cout << "CLIENT !!!!!!" << endl; cout << "client connected to server!" << endl; char buffer1[1024]; cout << "inter the message for server!" << endl; cin >> buffer1; send(server, buffer1, sizeof(buffer1), 0); cout << "Message sent to server! is : " << buffer1<< endl; char buffer2[1024]; recv(server, buffer2, sizeof(buffer2), 0); cout << "server says to client: " << buffer2 << endl; memset(buffer2, 0, sizeof(buffer2)); //closesocket(server); //WSACleanup(); //cout << "Socket closed." << endl << endl; system("pause"); }
code serveur
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 ////......................serveur......................///// #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") #include <iostream> using namespace std; int main() { WSADATA WSAData; SOCKET server, client; SOCKADDR_IN serverAddr, clientAddr; WSAStartup(MAKEWORD(2, 0), &WSAData); server = socket(AF_INET, SOCK_STREAM, 0); serverAddr.sin_addr.s_addr = INADDR_ANY; serverAddr.sin_family = AF_INET; serverAddr.sin_port = htons(15555); bind(server, (SOCKADDR *)&serverAddr, sizeof(serverAddr)); listen(server, 0); cout << "SERVEUR !!!!!!" << endl; cout << "serveur listening for incoming connections..." << endl; char buffer1[1024]; int clientAddrSize = sizeof(clientAddr); while ((client = accept(server, (SOCKADDR *)&clientAddr, &clientAddrSize)) != INVALID_SOCKET) { cout << "Client connected to serveur!" << endl; recv(client, buffer1, sizeof(buffer1), 0); cout << "Client says to serveur: " << buffer1 << endl; memset(buffer1, 0, sizeof(buffer1)); if (buffer1[512] == '111') { cout << "le bon message est recu et c'est le : " << buffer1 << endl; } char a; cout << "enter letter in server" << endl; cin >> a; if (a=='n') { char buffer2[1024] = "hello"; send(client, buffer2, sizeof(buffer2), 0); cout << "Message sent to client!" << endl; } //closesocket(client); //cout << "Client disconnected." << endl; } system("pause"); }
Partager