Programmation réseau en language c

Résolu/Fermé
reinette - Modifié le 18 juin 2020 à 16:02
 reinette - 18 juin 2020 à 17:28
Bonjour,
le programme ci-dessous me retourne lors de l'éxecution:
Erreur de segmentation (core dumped)
même en utilisant gdb j'ai pas compris comment corriger l'erreur


#include<stdio.h>
#include<stdlib.h>
#include<arpa/inet.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#include<string.h>
#include<unistd.h>
#define PORTS 6260 // port du serveur
int main(int argc,char **argv){
struct hostent *h;
struct sockaddr_in sin;
char buf[100];
int sock;
socklen_t lgadr;
/*création socket et attâchement d'une adresse*/
sock=socket(AF_INET,SOCK_DGRAM,0);
/*Construction adresse du serveur*/
if(!(h=gethostbyname(argv[1]))){
perror("gethostbyname");exit(2);}
/*préparation de l'adresse distante: port + la première @IP*/
bzero(&sin,sizeof(sin));
sin.sin_family=AF_INET;
bcopy(h->h_addr,&sin.sin_addr,h->h_length);
sin.sin_port=htons(PORTS);
/*sin.sin_addr.s_addr=htonl(INADDR_ANY);*/
lgadr=sizeof(sin);
bind(sock,(struct sockaddr *)&sin,lgadr);
/*echange de datagrammes*/
strcpy(buf,"Hello word!");
sendto(sock,buf,strlen(buf)+1,0,(struct sockaddr *)&sin,lgadr);
printf("Hello envoyé! \n");
recvfrom(sock,buf,256,0,(struct sockaddr *)&sin,&lgadr);
printf("%s recu par le client!\n",buf);
close(sock);
return 0;
}





Configuration: Linux / Firefox 77.0

3 réponses

yg_be Messages postés 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 Ambassadeur 1 557
18 juin 2020 à 16:36
bonjour, à quelle ligne de code obtiens-tu cette erreur?
0
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 1 096
18 juin 2020 à 17:07
Salut reinette,

Est-ce que tu lances le programme compilé avec ce source avec en argument le nom d'hôte ou l'adresse IP du serveur auquel tu envoies la requête ?

Dal
0
non .merci beaucoup c'étais l'erreur que j'ai commis
0