bonsoir a tous !
je débute en programmation de socket et quand je dis je débute c'est une histoire de quelques heures
j'ai suivie pendant ces heures de nombreux tuto et j'ai essayer de generé un code rassemblant tout ce que j'ai vu.
mon code est simple je cherche juste a créer un serveur et un client.
le serveur envoie un message au client et le client l'affiche.
sauf que biensur il ne l'affiche pas. je suis sur que mon erreur doit etre facilement identifiable mais moi je ne l'a trouve pas
merci pour vos reponses voici mon code :
le client:
et puis 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 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> int main(int argc,char**argv){ int sock; // le socket struct sockaddr_in sin; // la structure qui contient les informations technique du socket char * ip_destination = "127.0.0.1"; // l'adresse de l'hote char * buffer[256]; // buffer de stockage de l'information recue int port = 23; // le port que l'on veut observer sock = socket(AF_INET, SOCK_STREAM, 0); // socket(famille du socket , type de socket , protocol) sin.sin_addr.s_addr = inet_addr(ip_destination); // definition de l'adresse du serveur sin.sin_family = AF_INET; // la famille du socket sin.sin_port = htons(port); // definition port que l'on veut observer connect(sock, (struct sockaddr *)&sin, sizeof(sin));// connection du socket sur le port recv(sock, buffer, sizeof(buffer), 0); // reception d'une eventuelle information envoyée par le serveur close(sock); // fermeture de la socket printf("Information recue : %s",buffer); return 0; }
je compile le tout je crée deux executables client.exe et serveur.exe je lance le serveur et ensuite le client mais rien ne s'affiche dans mon shell
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 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> int main(int argc,char**argv){ int sock; // socket du serveur int csock; // socket du client struct sockaddr_in sin; // informations du socket serveur struct sockaddr_in csin; // informations du socket client unsigned int sinsize = sizeof(csin); // on stock la taille du socket client sock = socket(AF_INET, SOCK_STREAM, 0); // socket(famille du socket , type de socket , protocol) sin.sin_addr.s_addr = INADDR_ANY; // le socket ecoutera n'importe quelle connection sin.sin_family = AF_INET; // la famille du socket sin.sin_port = htons(23); // le port utilisé bind(sock, (struct sockaddr *)&sin, sizeof(sin)); // connection du socket sur le port listen(sock, 0); // le socket ecoute maintenant les connections while(1){ csock = accept(sock, (struct sockaddr*)&csin, &sinsize); // on accept une connection au serveur send(csock, "Message envoyé !\r\n", 18, 0); // on envoie un message au client } return 0; }
merci !
Partager