Question: I've been having issues getting the C sockets API to work properly in C++. Specifically, although I am including
Update: Upon further investigation, I discovered that there is an
Now, I personally have no idea what this
Sure I can post a test app.
Compile/Link Output:
cxx -Wc,xplink -Wl,xplink -o inet_test inet.C
"./inet.C", line 5.16: CCN5274 (S) The name lookup for "AF_INET" did not find a declaration.
CCN0797(I) Compilation failed for file ./inet.C. Object file not created.
A check of sys/sockets.h does include the definition I need, and as far as I can tell, it is not being blocked by any #ifdef statements.
I have however noticed it contains a the following:
which encapsulates basically the whole file. Not sure if it matters.
Solution:
X/Open
Berkeley Sockets
sys/socket.h
, I still get compile time errors telling me that AF_INET
is not defined. Am I missing something obvious, or could this be related to the fact that I'm doing this coding on z/OS
and my problems are much more complicated?Update: Upon further investigation, I discovered that there is an
#ifdef
that I'm hitting. Apparently z/OS
isn't happy unless I define which "type" of sockets I'm using with:#define _OE_SOCKETS
Now, I personally have no idea what this
_OE_SOCKETS
is actually for, so if any z/OS
sockets programmers are out there (all 3 of you), perhaps you could give me a rundown of how this all works?Sure I can post a test app.
#include <sys/socket.h> int main() { return AF_INET; }
Compile/Link Output:
cxx -Wc,xplink -Wl,xplink -o inet_test inet.C
"./inet.C", line 5.16: CCN5274 (S) The name lookup for "AF_INET" did not find a declaration.
CCN0797(I) Compilation failed for file ./inet.C. Object file not created.
A check of sys/sockets.h does include the definition I need, and as far as I can tell, it is not being blocked by any #ifdef statements.
I have however noticed it contains a the following:
#ifdef __cplusplus extern "C" { #endif
which encapsulates basically the whole file. Not sure if it matters.
Solution:
X/Open
#define _XOPEN_SOURCE_EXTENDED 1 #include <sys/socket.h> int connect(int socket, const struct sockaddr *address, socklen_t address_len);
Berkeley Sockets
#define _OE_SOCKETS #include <sys/types.h> #include <sys/socket.h> int connect(int socket, struct sockaddr *address, int address_len);
No comments:
Post a Comment