2

我正在尝试打开套接字。但它在 WASStartup、WSAGetLastError、socket、htons 处给出了一个链接错误(LNK2019:函数“function”中引用的未解析的外部符号“symbol”)。我做错了什么?

这是一个源代码

#include <iostream>
#include <string>
#include <winsock2.h>
#include <Windows.h>
using namespace std;
string server; int port;
void login_info()
{
    cout << "Enter IP Address: ";
    cin >> server;
    cout << "\nEnter Port: ";
    cin >> port;
    cout << endl;
}

int main () 
{
    char buffer[1024];
    login_info();
    cout << "Trying to connect...\n";
    if (WSAStartup(0x202, (WSADATA *) &buffer[0])) //Оно что-то запускает. Знать бы что..
    {
        cout << "WSAStart error #" << WSAGetLastError(); //Но если оно пизданётся, то появится ошибка :3
        return -1;
    }
    //Тут предположительно поднимается сам сокет.
    SOCKET connection;
    connection=socket(AF_INET, SOCK_STREAM, 0);
    //Проверка на то, что он есть?
    if (socket<0) 
    {
        cout << "Socket error #" << WSAGetLastError(); //Но если оно пизданётся, то появится ошибка :3
        return -1;
    }
    sockaddr_in dest_addr; //Тут опять происходит, что-то мне непонятное..
    dest_addr.sin_family=AF_INET;      
    dest_addr.sin_port= htons (port);
    HOSTENT *hst;
    return 0;
}
4

1 回答 1

3

我认为您需要链接到 winsock ws_32.lib 库。我不确定您使用的是什么工具/ide,但如何链接 winsock.lib?有一些细节。

MSDN: http: //msdn.microsoft.com/en-us/library/windows/desktop/ms737629 (v=vs.85).aspx

编辑 - 现在可能需要寻找 Ws2_32.lib。

于 2012-11-10T17:10:05.910 回答