Bonjour,
J'essaie de bricoler avec les sockets pour bien comprendre leur fonctionnement, je suis sous une plateforme linux.
Je suis un grand débutant et j'utilise le tuto du site à propos des sockets en C (je n'ai fait que recopier une partie du code).
J'aimerai un peu d'aide concernant cette partie du tuto donc.
Le code fonctionne très bien (enfin ça compile sans warning ni erreur) en revanche je n'arrive pas à me connecter je ne comprends pas pourquoi.
J'ai rajouté un else pour bien voir la partie qui m'embêtait je suis toujours dans le cas de figure "impossible de connecter" ... moi vraiment pas saisir là ...
Si quelqu'un pouvait éclairer ma lanterne.
(Et oui je pourrais aussi utiliser la lib curl mais j'ai bien l'impression que je ne comprends rien à la doc .. et j'aimerais autant faire les choses entièrement par moi même)
Edit : J'ai évidemment défini tous les include et les define qui vont bien mais je vous les épargne pour plus de lisibilité.
Merci d'avance les experts (matinaux)
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
31
32
33
34
35 int ma_connexion_web(void) { SOCKET sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == INVALID_SOCKET) { perror("socket()"); exit(errno); } struct hostent *hostinfo = NULL; SOCKADDR_IN sin = { 0 }; /* initialise la structure avec des 0 */ const char *hostname = "free.fr"; hostinfo = gethostbyname(hostname); /* on récupère les informations de l'hôte auquel on veut se connecter */ if (hostinfo == NULL) /* l'hôte n'existe pas */ { fprintf (stderr, "Unknown host %s.\n", hostname); return EXIT_FAILURE; } sin.sin_addr = *(IN_ADDR *) hostinfo->h_addr; /* l'adresse se trouve dans le champ h_addr de la structure hostinfo */ sin.sin_port = htons(PORT); /* on utilise htons pour le port */ sin.sin_family = AF_INET; if(connect(sock,(SOCKADDR *) &sin, sizeof(SOCKADDR)) == SOCKET_ERROR) { printf("Connection à %s sur le port %d\n", inet_ntoa(sin.sin_addr), htons(sin.sin_port)); perror("connect()"); exit(errno); } else { printf("Impossible de se connecter\n"); <-- Je suis toujours dans ce cas de figure } return 10; }
Partager