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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
#include <stdio.h> // E/S habituelles
#include <winsock2.h> // Les Socket
#pragma comment(lib, "ws2_32.lib")
/* --------------------------------------------------- */
/* P R O G R A M M E P R I N C I P A L */
/* ===================================== */
/*---------------------------------------------------- */
int main(int argc, char *argv[])
{
char Adresse_Serveur[20]; // Contiendra l'adresse du serveur SMTP
SOCKET dsocket; // Descripteur de fichier
struct sockaddr_in Addresse_Distante; // Socket
struct hostent *Adresse_Resolue; // structure pour résoudre l'adresse
// on demande l'adresse du serveur sur lequel on souhaite se connecter
printf("Serveur SMTP : ");
scanf("%s", &Adresse_Serveur);
dsocket = socket(AF_INET, SOCK_STREAM, 0);
// Création de la socket
if (dsocket == -1)
{
// Erreur lors de la création de la socket...
printf("Impossible d'initialiser la connexion\n");
exit(0);
}
else
{
// Type de famille : IPV4
Addresse_Distante.sin_family = AF_INET;
// Port sur lequel on veut se connecter (25 : SMTP)
Addresse_Distante.sin_port = htons(25);
// Adresse IP du destinataire
Addresse_Distante.sin_addr.s_addr = inet_addr(Addresse_Distante);
// Remplie de 0 l'élément sin_zero de la strucuture sockaddr_in
memset(&(Addresse_Distante.sin_zero), '\0', 8);
}
Adresse_Resolue = gethostbyname(Adresse_Serveur);
// Tentavie de connexion au serveur
if (connect(dsocket, (struct sockaddr *)&Addresse_Distante, sizeof(struct sockaddr)) == -1)
{
// Erreur lors de la connexion...
printf("Echec de la connexion : ");
printf("%s\n",inet_ntoa(Addresse_Distante.sin_addr));
}
else
{
// On va essayer de se connecter au serveur
printf("Connexion au serveur.....");
printf("%s\n",inet_ntoa(Addresse_Distante.sin_addr));
}
return 0;
} |