2017-06-26 1 views
0

Je tente de créer une socket simple.Erreur de création de socket

#include<stdio.h> 
#include<winsock2.h> 
#include<ws2tcpip.h> 

int getaddrinfo(const char *node, 
       const char *service, 
       const struct addrinfo *hints, 
       struct addrinfo **res); 

int main(int argc, char *argv[]) 
{ 
    WSADATA wsa; 
    SOCKET a; 
    printf("Initializing..."); 
    if(WSAStartup(MAKEWORD(2,2),&wsa)!=0); 
     printf("Failed, Error:%d",WSAGetLastError()); 
    if((a=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET); 
     printf("Failed, Error:",WSAGetLastError()); 
    return 0; 
} 

Mais l'erreur "référence non définie à ..." sur toutes les fonctions de Winsock2 liées (comme WSAStartup).

Répondre

0

Des erreurs de référence non définies signifient que vous n'avez pas lié la bibliothèque de socket à votre projet. Les fichiers d'en-tête lui indiquent à quoi ressemblent les fonctions, mais les fichiers de bibliothèque fonctionnent réellement. Voir pour this answer pour les détails sur la façon de le faire.

0

Vous devez lier avec ws2_32.lib pour obtenir les fonctions de winsock.

Si vous utilisez un fichier de projet, dans VS, allez dans Propriétés de configuration -> Lieur -> Entrée et ajoutez ws2_32.lib à Dépendances supplémentaires.