0
我試圖將我的IRC bot從Python移植到C++,並且遇到了一些Winsock2問題。我對C/C++中的套接字相當陌生,大部分代碼都是從各種教程拼湊而成的。我不斷收到錯誤10049,並且無所適從。任何幫助將不勝感激。謝謝!VC++ Winsock2 Error 10049.試圖構建IRC bot
port_設置爲6667和HOST_是「irc.rizon.net」
WSADATA wsaData;
int starterr = WSAStartup(MAKEWORD(2,2), &wsaData);
if (starterr != 0) {
std::cout << "Error: " << WSAGetLastError() << " occurred!" << std::endl;
WSACleanup();
return 1;
}
std::cout << "WSAStartup Successful!" << std::endl;
socketfd_ = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (socketfd_ == INVALID_SOCKET) {
std::cout << "Error: " << WSAGetLastError() << " occurred!" << std::endl;
WSACleanup();
return 1;
}
std::cout << "Socket Creation Successful!" << std::endl;
sockaddr_in anews;
anews.sin_port = htons(port_);
anews.sin_addr.s_addr = inet_addr(host_.c_str());
anews.sin_family = AF_INET;
if (connect(socketfd_,(sockaddr*)&anews, sizeof(anews)) == SOCKET_ERROR) {
std::cout << "Error: " << WSAGetLastError() << " occurred!" << std::endl;
WSACleanup();
return 1;
}
std::cout << "Socket has connected successfuly!" << std::endl;
return 0;
它的抱怨關於艾未初始化現在。 :\ – user924154
'ai'不應該被初始化,因爲它是一個out參數,雖然你可以在它傳遞給getaddrinfo()之前將它初始化爲NULL。無論如何,這將是一個最佳做法,但我相信這不是你的問題。你仍然在做'WSAStartup()'對嗎? –
我試圖將它初始化爲NULL,以獲得相同的投訴。我還在使用WSAStartup()。 – user924154