Не могу открыть сокет. Переполнение стека

Я пытаюсь открыть сокет. Но он дает ссылку Ошибка (LNK2019: неразрешенный внешний символ ‘symbol’, на который ссылается функция ‘function’) в WSASTartup, WSAGetLastError, socket, htons. Что я делаю не так?

Вот исходный код

#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;
}

2

Решение

Я думаю, что вам нужно сделать ссылку в библиотеке 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.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]