IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

Problème : serveur mail compilation (link error au niveau des sockets


Sujet :

Développement

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Problème : serveur mail compilation (link error au niveau des sockets
    Bonjour à tous,

    Je tiens à préciser je suis débutant, voir novice dans l'utilisation de socket.
    Dans le cadre d'un projet où la réalisation d'un client mail (envoie, reception) demandé par mon école, j'ai essayer de comprendre des codes deja existant (plus facile à comprendre à l'aide d'un exemple).

    J'utilise Dev-Cpp comment environnement de devellopement.
    Donc, je précise, je cré un nouveau projet vide en C++, dans lequel j'inclus dans le main le code suivant :

    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
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    #include <winsock2.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    void suppr_n(char *ptr)
    {
    char *p=strchr(ptr,'\n'); //recherche le '\n' dans ptr
    if(p!=NULL)
    *p=0;
    }
    
    int main(void)
    {
    WSADATA WSAData;
    int my_sock;
    struct sockaddr_in sin;
    char reverse_path[255];
    char destinat[255];
    char from[255];
    char subject[255];
    char to[255];
    char message[1024];
    char buffer[9120];
    int result_connect;
    char c;
    char numIP[18]="62.62.156.27";
    int port=25;
    
    
    printf("tapez l\'adresse du correspondant : \n");
    fgets(buffer,sizeof(buffer),stdin);
    suppr_n(buffer);
    sprintf(destinat,"RCPT TO:<%s>",buffer);
    sprintf(to,"TO:<%s>",buffer);
    
    printf("\ntapez l\'adresse de l\'expediteur\n");
    fgets(buffer,sizeof(buffer),stdin);
    suppr_n(buffer);
    sprintf(reverse_path,"MAIL FROM:<%s>",buffer);
    
    printf("tapez le champs from : \n");
    fgets(buffer,sizeof(buffer),stdin);
    suppr_n(buffer);
    sprintf(from,"FROM:<%s>",buffer);
    
    printf("\ntapez le sujet du mail : \n");
    fgets(buffer,sizeof(buffer),stdin);
    suppr_n(buffer);
    sprintf(subject,"SUBJECT:%s",buffer);
    
    printf("\ndestination : %s",destinat);
    printf("\nreturn : %s",reverse_path);
    printf("\nfrom : %s",from);
    printf("\nto : %s",to);
    printf("\nsujet : %s",subject);
    printf("\ncorps: %s",buffer);
    
    sprintf(buffer,"voici mon message"
    "\r\n");
    
    sprintf(message,
    "EHLO <212.30.xxx.xxx>\r\n"
    "%s"
    "\r\n"
    "%s\r\n"
    "DATA \r\n"
    "%s\r\n"//to
    "%s\r\n"//from
    "%s\r\n"//sujet
    "\r\n"//separation entete corps
    "%s\r\n"//corps du message
    ".\r\n"//indicateur de fin transaction smtp
    "QUIT\r\n"
    ,reverse_path,destinat,to,from,subject,buffer);
    
    printf("\n\n\n%s\n\n\n",message);
    
    WSAStartup(MAKEWORD(2,0), &WSAData);
    
    
    
    sin.sin_addr.s_addr = inet_addr(numIP);
    sin.sin_family = AF_INET;
    sin.sin_port = htons(port);
    my_sock = socket(AF_INET,SOCK_STREAM,0);
    
    printf("connexion au port %d...\n",port);
    result_connect=connect(my_sock,(SOCKADDR*)&sin,sizeof(sin));
    
    if(result_connect==0)
    {
    
    printf("connexion reussie au port %d \n\n",port);
    
    send(my_sock,message ,sizeof(message)-1, 0);
    
    while((recv(my_sock, &c, 1, 0))==1)
    {
    putchar(c);
    }
    
    closesocket(my_sock);
    printf("connexion fermee\n");
    }
    else
    printf("erreur de connexion\n");
    
    WSACleanup(); 
    system("pause");
    
    return 0;
    }
    Lors de la compilation, je reçois les erreurs suivantes :
    [Linker error] undefined reference to `WSAStartup@8'
    [Linker error] undefined reference to `inet_addr@4'
    [Linker error] undefined reference to `htons@4'
    [Linker error] undefined reference to `socket@12'
    [Linker error] undefined reference to `connect@12'
    [Linker error] undefined reference to `send@16'
    [Linker error] undefined reference to `recv@16'
    [Linker error] undefined reference to `closesocket@4'
    [Linker error] undefined reference to `WSACleanup@0'
    ld returned 1 exit status
    C:\Documents and Settings\Administrateur\Bureau\test\Makefile.win [Build Error] [Project1.exe] Error 1
    Etant novice, je ne comprends pas bien ces problèmes, ainsi, si quelqu'un pouvais se donner la peine de m'expliquer et de me proposer une solution au problème, sa me permettrait de perdre du temps fort précieux.

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 854
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 854
    Points : 15 274
    Points
    15 274
    Par défaut
    Salut !

    Menu Projet, Options, onglet General, ligne Linker options et tu rajoutes

    -lwsock32

    (moins elle doublevé...)
    Oui, je sais, ça ne s'invente pas,

    Mes 2 cts,
    --
    jp

Discussions similaires

  1. problème serveur mail
    Par Aknar dans le forum Administration système
    Réponses: 1
    Dernier message: 15/07/2010, 17h05
  2. Réponses: 3
    Dernier message: 20/06/2008, 21h10
  3. Problème Serveur en Compilé
    Par mxh77 dans le forum 4D
    Réponses: 2
    Dernier message: 07/03/2008, 15h01
  4. [MySQL] Problème d'affichage dans un tableau au niveau des accents
    Par Stu76 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/02/2008, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo