套接字编程C ++错误未定义引用

时间:2014-06-24 13:25:34

标签: c++ sockets codeblocks

#pragma comment(lib,"Ws2_32.lib")
#include<sdkddkver.h>
#include<conio.h>
#include<stdio.h>
#include<iostream>
#include<WinSock2.h>
#include<windows.h>
#define SCK_VERSION2 0x0202

using namespace std;

int main()
{
    long SUCCESSFUL;
    WSAData WinSockData;
    WORD DLLVERSION;

    DLLVERSION=MAKEWORD(2,1);
    SUCCESSFUL=WSAStartup(DLLVERSION,&WinSockData);
    SOCKADDR_IN ADDRESS;
    int AddressSize=sizeof(ADDRESS);

    SOCKET sock_LISTEN;
    SOCKET sock_CONNECTION;
    sock_CONNECTION=socket(AF_INET,SOCK_STREAM,NULL);

    ADDRESS.sin_addr.s_addr=inet_addr("127.0.0.1");
    ADDRESS.sin_family=AF_INET;
    ADDRESS.sin_port=htons(444);

    sock_LISTEN=socket(AF_INET,SOCK_STREAM,NULL);

    bind(sock_LISTEN,(SOCKADDR *)&ADDRESS,sizeof(ADDRESS));

    listen(sock_LISTEN,SOMAXCONN);

    for(;;)
    {
        cout<<"\n\tSERVER:Waiting for incoming connection...";
        if(sock_CONNECTION=accept(sock_LISTEN,(SOCKADDR *)&ADDRESS,&AddressSize));
        {
            cout<<"\n\tA connection was found!"<<endl;
            SUCCESSFUL=send(sock_CONNECTION,"Welcome! You are now connected to the Server!",46,NULL);
        }
    }
 }

每当我尝试为服务器构建此代码时,我都会遇到以下错误:

enter image description here

我是全新的。我正在使用代码块。我一直在寻找过去4天的解决方案,但我什么都不懂。请帮忙

1 个答案:

答案 0 :(得分:1)

如果您正在使用CodeBlocks,那么您可以使用MinGW(我猜,根据经验水平较低)。

此功能适用于Visual Studio编译器:

#pragma comment(lib,"Ws2_32.lib") 

使用MinGW这样的#pragma将无效。

相反,如果你必须打开&#34;项目&#34; - &GT; &#34;选项&#34;,然后在左侧树中选择您的项目(或&#34;调试&#34; /&#34;发布&#34;,如果您希望该更改在那里工作),然后打开选项卡&#34;链接设置&#34;。

按&#34;添加&#34;并找到像&#34; libws2_32.a&#34;在你的MinGW / lib /目录中。

尝试重建后。希望这会有所帮助。