Basically I'm just trying to make a client program to connect to an IRC server atm but I can't figure out why this won't work. WSAGetLastError continously returns the error 10047 at the call to connect() when I enter "irc.gamesurge.net 6667" as the first and second parameter.
10047:
WSAEAFNOSUPPORT
0x273F
An address incompatible with the requested protocol was used.
Here's the code:Code:#include <iostream> #include <winsock2.h> #include <ws2tcpip.h> #include <cstring> #include <Mstcpip.h> using namespace std; WSADATA wsaData; int main(int argc, char * argv[]) { int wsaReturnVal = WSAStartup(MAKEWORD(1, 1), &wsaData); if (wsaReturnVal) { printf("Error number: %d", wsaReturnVal); exit(1); } struct addrinfo hints, *res = NULL; SOCKET sockfd; memset(&hints, 0, sizeof(addrinfo)); memset(&res, 0, sizeof(addrinfo)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; getaddrinfo(argv[1], argv[2], &hints, &res); sockfd = socket(res->ai_family, res->ai_socktype, res->ai_protocol); if (sockfd == SOCKET_ERROR) { printf("connect error %d", WSAGetLastError()); exit(1); } if (connect(sockfd, (struct sockaddr *)res, sizeof(addrinfo)) == SOCKET_ERROR) { printf("connect error %d", WSAGetLastError()); exit(1); } printf("Connected to IRC server..."); closesocket(sockfd); if (WSACleanup()) { printf("cleanup %d", WSAGetLastError()); exit(1); } }




Reply With Quote