[C] Connection à un serveur mail

Connection à un serveur mail [C] - C - Programmation

Marsh Posté le 10-05-2008 à 20:04:17    

Salut, je cherche à me connecter à un serveur mail quelconque (qui devra être précisé par l'utilisateur), sauf que la connection ne se fait pas.
 

Code :
  1. if(connect(sock,(struct sockaddr*)&server,sizeof(server))<0)
  2.     {
  3.         printf("la connection a échoué\n" );
  4.         exit(1);
  5.     }
  6.     printf("maintenant connecté au server %s\n",servaddr);


 
Je pense avoir bien renseigné les champs de la variable server :
 

Code :
  1. struct sockaddr_in server;
  2.     bzero(&server,sizeof(server));
  3.     server.sin_family=AF_INET;
  4.     server.sin_port=htons(port);


 
avec port défini plus tôt (short port=110), le tout est fait en adaptant l'exemple ici
mais pour la réception (et non l'envoi) d'un message.
 
Sauf que ça m'affiche tout le temps "la connection a échoué".
 
Donc je me demandais si il n'y avait pas quelque chose à configurer pour autoriser la connection sur le port 110 par exemple ? (Je suis sous linux debian etch). C'est la première fois que j'utilise des sockets alors je suis un peu perdu.

Reply

Marsh Posté le 10-05-2008 à 20:04:17   

Reply

Marsh Posté le 10-05-2008 à 21:28:40    

Ok j'ai trouvé le problème, j'utilisais le nom du serveur à la place de l'adresse. Quelqu'un sait comment trouver l'adresse d'un serveur à partir du nom ? Parce que tout fonctionne, mais je suis obligé d'écrire l'adresse soit via le shell soit directement dans le code, alors que j'aimerai que l'on tape pop.machin.truc juste...

Reply

Marsh Posté le 10-05-2008 à 21:48:12    

Bon bah j'ai trouvé, franchement ils auraient pu faire plus simple que ça :

Code :
  1. inet_aton(inet_ntoa(* (struct in_addr *) * s_serv->h_addr_list),&(server.sin_addr));

:o
 
(à moins qu'il y ait effectivement plus simple mais j'ai pas trouvé).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed