最近C++のプログラミングを始めたのですが、スクリプト言語と比べるとヘッダー定義など
新しい要素が満載でいろいろとトラブルが続出しています。
windowsのvisual studioでソケットの実験のコードを書いたのですが
ヘッダーをインクルードしているはずなのに
一例として
エラー 9 error LNK2019: 未解決の外部シンボル __imp__WSAStartup@8 が関数 "public: __thiscall Server::Server(void)" (??0Server@@QAE@XZ) で参照されました。 c:\Users\yosip\documents\visual studio 2013\Projects\Project1\Project1\Server.obj Project1
のようなエラーがでます。
恐らくインクルード関連の問題だとは思いますが
問題の関数をマウスオーバーするとしっかりと引数の説明は出てきます。
なぜこのようなエラーが出るのでしょうか?
回答をお願いします。
#include<winsock2.h>
#include<iostream>
class Server
{
public:
Server();
sockaddr_in server_addr;
sockaddr_in client_addr;
WSADATA data;
SOCKET server_sock;
SOCKET client_sock;
int len;
};
#include "Server.h"
Server::Server()
{
WSAStartup(MAKEWORD(2, 0), &data);
server_sock= socket(AF_INET, SOCK_STREAM, 0);
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(12345);
server_addr.sin_addr.S_un.S_addr = INADDR_ANY;
bind(client_sock, (struct sockaddr *)&server_addr, sizeof(server_addr));
listen(client_sock, 5);
while (1){
len = sizeof(client_addr);
client_sock = accept(server_sock, (struct sockaddr *)&client_addr, &len);
send(client_sock, "HELLO", 5, 0);
closesocket(client_sock);
}
WSACleanup();
}
int main(){
Server ser();
}