Bonjour
Voila je début en réseau en c.
j'ai c'est deux codes.
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 #include<stdlib.h> #include<stdio.h> #include<winsock2.h> #include<windows.h> #define cip "127.0.0.1" #define cport 6667 #pragma comment(lib, "ws2_32.lib") int main() { WSADATA WSAData; //initialisation de la variable WSADATA WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKADDR_IN sin; char buffer[50]; sock = socket(AF_INET, SOCK_STREAM, 0); //créer un socket sin.sin_addr.s_addr = inet_addr(cip); //l'ip sur lequel va ce connecter le client sin.sin_family = AF_INET; //type de socket utiliser AF_INET pour internet sin.sin_port = htons(cport); //port utiliser par le client doit etre le même pour le serveur if (connect(sock, (SOCKADDR *)&sin, sizeof(sin))== SOCKET_ERROR) { printf("CLIENT: connexion echouer\n"); } else { printf("**************************\n"); printf("CLIENT: connexion reussi \n"); printf("**************************\n\n"); printf("Entrer une fonction a executer\n"); fflush(stdin); scanf("%s",&buffer); send(sock, buffer, 10, 0); } closesocket(sock); WSACleanup(); system("pause"); return 0; }
et le 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 #include<winsock2.h> #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<string.h> #define cport 6667 //port de conexion #pragma comment(lib, "ws2_32.lib") void MsgBox(char mes[50]); int main() { char buf[50]=""; WSADATA WSAData; //initialisation de la variable WSADATA WSAStartup(MAKEWORD(2,0), &WSAData); SOCKET sock; SOCKET csock; SOCKADDR_IN sin; SOCKADDR_IN csin; sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_addr.s_addr = INADDR_ANY; //adresse du server sin.sin_family = AF_INET; sin.sin_port = htons(cport); bind(sock, (SOCKADDR *)&sin, sizeof(sin)); listen(sock, 0); int sinsize = sizeof(csin); if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET) //si le serveur est connecter { printf("connexion reussi\n"); recv(csock, buf, sizeof(buf), 0); printf("%s\n",buf); MsgBox(buf); } else { printf("Erreur de socket"); } return 0; } void MsgBox(char mes[50]) { if(strcmp(mes,"error") == 0) { MessageBox(NULL,"Erreur prog","Erreur",MB_OK); } }
Je voudrais que quand je me déconnecte le serveur ce remette en écoute pour pouvoir me connecter quand je veux. il faudrait une sorte de boucle infinie mais je pense pas que cela soit vraiment fiable.
donc je voudrai savoir comment faire.
cordialement.
Partager