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

Oct 25, 2008 at 11:30pm
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 Oct 25, 2008 at 11:31pm
Oct 26, 2008 at 9:06am
Are you including Ws2tcpip.h.
This is where the addrinfo lives.
Last edited on Oct 26, 2008 at 9:09am
Oct 26, 2008 at 9:33am
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.
Oct 26, 2008 at 11:21pm
GREAT ANSWER!
Topic archived. No new replies allowed.