Problème de connexion Socket

[Résolu]
Signaler
Messages postés
66
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 octobre 2009
-
Messages postés
66
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 octobre 2009
-
Bonjour !
En temp normal, je programme en java, mais j'ai voulu essayer le c++
parce que je trouve que c'est interessant de connaître plusieurs languages.
Le truc, c'est que je suis nul, alors, soyez indulgents!^^
Voila mon histoire, place au problème.
J'essaie de faire un programme qui va voir sur mon serveur de mail si j'ai des
mails non lus et qui me le dit. Mais je n'arrive même pas a me connecter!
Voila le code:
#include <winsock2.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")
int main()
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock;
SOCKADDR_IN sin;
char buffer[50];
sock = socket(AF_INET, SOCK_STREAM, 0);
if(sock == INVALID_SOCKET){
        MessageBox (NULL, "Erreur: Socket invalide", "Client", MB_OK | MB_ICONEXCLAMATION);
}
sin.sin_addr.s_addr            = inet_addr("mail.bluewin.ch");
sin.sin_family                = AF_INET;
sin.sin_port                = htons(110);
int cerror = connect(sock, (SOCKADDR *)&sin, sizeof(sin));
if(cerror == SOCKET_ERROR){
          MessageBox (NULL, "Erreur: Impossible de se connecter!", "Client", MB_OK | MB_ICONEXCLAMATION);
}
int error = recv(sock, buffer, sizeof(buffer)-1, 0);
if(error == SOCKET_ERROR){
         MessageBox (NULL, "Erreur: Impossible de recevoir le message!!!", "Client", MB_OK | MB_ICONEXCLAMATION);
}
printf("Message reçu : %s\n\n",buffer);
closesocket(sock);
WSACleanup();
system("pause");
return 0;
}

Il bloque a la connexion. Pourquoi?
Merci d'avance

4 réponses

Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Salut,
je suis pas sur que inet_addr accepte autre chose qu'une addresse ip, ramplace donc mail.bluewin.ch par son adresse ip : 195.186.18.142
ou alors utilise ceci :

hostinfo = gethostbyname(address.c_str()); // Resolve name

if (hostinfo == NULL) /* Problem during resolution (probably not able to resolve hostname)*/
throw(string("Unable to resolve hostname"));

info.server.sin_addr = *(struct in_addr *) hostinfo->h_addr_list[0];
Messages postés
66
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 octobre 2009

Rebonjour!
Merci pour toutes ces réponses, je vais voir si j'arrive a les utiliser.
Sinon comment fais tu pour trouver l'adresse ip d'un site ou d'un serveur??
Merci
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
le plus simple, tu fais un ping :

~$ ping mail.bluewin.ch
PING mail.bluewin.ch (195.186.18.142) 56(84) bytes of data.
Messages postés
66
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 octobre 2009

Super merci beaucoup!!
Ciao!