Programmation réseau en language c [Résolu]

Signaler
-
 reinette -
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

Messages postés
13243
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020
743
bonjour, à quelle ligne de code obtiens-tu cette erreur?
Messages postés
5436
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
23 novembre 2020
914
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
non .merci beaucoup c'étais l'erreur que j'ai commis