2012-10-24 55 views
0

我使用的是Dev ++,根据我阅读的套接字编程教程,我需要链接到我的项目的libws2_32.a如何在Dev ++中连接libws2_32.a进行套接字编程

我不明白如何做到这一点。有人可以解释吗?

这里是我的代码:

//CONNECT TO REMOTE HOST (CLIENT APPLICATION) 
//Include the needed header files. 
//Don't forget to link libws2_32.a to your program as well 
#include <winsock.h> 
#pragma comment(lib,"libwsock32.a") 
SOCKET s; //Socket handle 

//CONNECTTOHOST – Connects to a remote host 
bool ConnectToHost(int PortNo, char* IPAddress) 
{ 
    //Start up Winsock… 
    WSADATA wsadata; 

    int error = WSAStartup(0x0202, &wsadata); 

    //Did something happen? 
    if (error) 
     return false; 

    //Did we get the right Winsock version? 
    if (wsadata.wVersion != 0x0202) 
    { 
     WSACleanup(); //Clean up Winsock 
     return false; 
    } 

    //Fill out the information needed to initialize a socket… 
    SOCKADDR_IN target; //Socket address information 

    target.sin_family = AF_INET; // address family Internet 
    target.sin_port = htons (PortNo); //Port to connect on 
    target.sin_addr.s_addr = inet_addr (IPAddress); //Target IP 

    s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); //Create socket 
    if (s == INVALID_SOCKET) 
    { 
     return false; //Couldn't create the socket 
    } 

    //Try connecting... 

    if (connect(s, (SOCKADDR *)&target, sizeof(target)) == SOCKET_ERROR) 
    { 
     return false; //Couldn't connect 
    } 
    else 
     return true; //Success 
} 

//CLOSECONNECTION – shuts down the socket and closes any connection on it 
void CloseConnection() 
{ 
    //Close the socket if it exists 
    if (s) 
     closesocket(s); 

    WSACleanup(); //Clean up Winsock 
} 

而且我得到的错误是:

[Linker error] undefined reference to `[email protected]' 

回答

2

转到项目选项 - >参数 - >连接 - >添加库和添加库文件,你需要 - 在你的情况 - libws2_32.a

+0

我现在链接只有一个错误: [链接器错误] undefined引用'WinMain @ 16' 它想要什么? – Dest

+0

@完全不同的问题 - 新问题。 –

+0

好的,谢谢,我现在要问 – Dest