I Keep Getting Undefineds Errors! Socket Programming for C++

I ported my program from Linux to Windows. I linked to winsock library. I compiled, i got lots of undefined!!! erros.

I defined these variables as globals
struct addrinfo hints;
struct addrinfo *results;
char *remoteIP = new char[40];
string tempPort;
int startingPort;
int status;
int currentPort;

So how do i get undefindes

MAD...grrrrrr aaaaaaaaaaaaaaaaaaaaaaaaaa :-/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Compiling...
vvv.cpp
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : error C2079: 'hints' uses undefined struct 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(30) : error C3861: 'getaddrinfo': identifier not found
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(34) : error C3861: 'gai_strerror': identifier not found
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(49) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(49) : error C2227: left of '->ai_next' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(53) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(53) : error C2227: left of '->ai_family' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(55) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(55) : error C2227: left of '->ai_addr' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(60) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(60) : error C2227: left of '->ai_addr' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(61) : error C2027: use of undefined type 'grabHostName::sockaddr_in6'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(60) : see declaration of 'grabHostName::sockaddr_in6'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(61) : error C2227: left of '->sin6_addr' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(103) : error C2228: left of '.ai_family' must have class/struct/union
        type is 'int'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(104) : error C2228: left of '.ai_socktype' must have class/struct/union
        type is 'int'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(132) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(132) : error C2227: left of '->ai_family' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(132) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(132) : error C2227: left of '->ai_socktype' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(132) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(132) : error C2227: left of '->ai_protocol' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(142) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(142) : error C2227: left of '->ai_addr' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(147) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(147) : error C2227: left of '->ai_addr' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(147) : error C2027: use of undefined type 'addrinfo'
        c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(9) : see declaration of 'addrinfo'
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(147) : error C2227: left of '->ai_addrlen' must point to class/struct/union/generic type
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(151) : error C2065: 'ECONNREFUSED' : undeclared identifier
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(153) : error C2065: 'ETIMEDOUT' : undeclared identifier
c:\documents and settings\fahmi\my documents\visual studio 2008\projects\vvv\vvv\vvv.cpp(173) : error C3861: 'freeaddrinfo': identifier not found
Build log was saved at "file://c:\Documents and Settings\Fahmi\My Documents\Visual Studio 2008\Projects\vvv\vvv\Debug\BuildLog.htm"



Here my headers:

#include"stdafx.h"
#include<iostream>
#include<string>
#include<sstream>
#include<winsock.h>
using namespace std;
Last edited on
Are you including Ws2tcpip.h.
This is where the addrinfo lives.
Last edited on
ETIMEDOUT and ECONNREFUSED are probably the Linux
names for these constants.

Windows names them slightly differently:
Try WSAETIMEDOUT and WSACONNREFUSED. These values are declared in winsock2.h and winerror.h header files.
GREAT ANSWER!
Topic archived. No new replies allowed.