C++ WinSock2 Errors

C++ WinSock2 Errors

本文关键字:Errors WinSock2 C++      更新时间:2023-10-16

昨天我尝试在c++中制作套接字服务器,但在编译时出现错误。错误:

错误6 LNK2019:未解析的外部符号_imp_socket@12在函数"public: static unsigned long __cdecl Env::GetSocket(void)"中引用(?GetSocket@Env@@SAKXZ) c: users joshua documents visual Studio 2010ProjectsHabboV5HabboV5Network。obj HabboV5

错误5错误LNK2019:未解析的外部符号_imp_listen@8在函数"public: void __thiscall Network::Start(void)"中引用(?Start@Network@@QAEXXZ) c: users joshua documents visual Studio 2010ProjectsHabboV5HabboV5Network。obj HabboV5

错误4错误LNK2019:未解析的外部符号_imp_htons@4在函数"public: void __thiscall Network::Start(void)"中引用(?Start@Network@@QAEXXZ) c: users joshua documents visual Studio 2010ProjectsHabboV5HabboV5Network。obj HabboV5

错误3错误LNK2019:未解析的外部符号_imp_bind@12在函数"public: void __thiscall Network::Start(void)"中引用(?Start@Network@@QAEXXZ) c: users joshua documents visual Studio 2010ProjectsHabboV5HabboV5Network。obj HabboV5

错误2错误LNK2001:未解析的外部符号"public: static class Network * Env::Network" (?Network@Env@@2PAV0@A) c: users 约书亚 documents visual Studio 2010ProjectsHabboV5HabboV5HabboV5。obj HabboV5

Error 7 Error LNK1120: 5个未解决的外部变量c: users 约书亚 documents visual Studio 2010ProjectsHabboV5DebugHabboV5.exe HabboV5

我的主。cpp类:

// HabboV5.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include "Env.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout.write("hi", 2);
cout << "Hello World!" << endl;
Env::Network = new Network();
Env::Network->Start();
while (1)
{
    char input[256];
    cin.getline(input, 256);
}
}

Network.h:

#pragma once
#include <WinSock2.h>
class Network
{
private:
    SOCKET socket;
public:
    Network(void);
    void Start();
};

Network.cpp:

#include "StdAfx.h"
#include "Network.h"
#include <WinSock2.h>
#include "Env.h"
Network::Network(void)
{
}
void Network::Start()
{
    this->socket = Env::GetSocket();
    SOCKADDR_IN sInformation;
    sInformation.sin_family = AF_INET;
    sInformation.sin_addr.s_addr = INADDR_ANY;
    sInformation.sin_port = htons(30000);
    bind(this->socket, (SOCKADDR*) (&sInformation), sizeof(sInformation));
    listen(this->socket, 10);
}

Env.h:

#include "stdafx.h"
#include "Network.h"
#include <WinSock2.h>
class Env
{
public:
    static Network* Network;
    static DWORD GetSocket()
    {
        return socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    }
};

在链接器选项中(在项目上右键单击,链接器,输入),您需要将wsock32.libws2_32.lib添加到输入文件列表中。