我一直有问题让C的套接字API在C ++中正常工作。 具体来说,虽然我包括sys/socket.h ,但仍然有编译时错误告诉我AF_INET没有被定义。 我是否错过了一些显而易见的东西,或者这可能与我在z/OS上进行这种编码的事实有关,而且我的问题更加复杂? 更新 :经过进一步的调查,我发现有一个#ifdef我打。 显然z/OS是不开心,除非我定义我使用的套接字“types”: #define _OE_SOCKETS 现在,我个人不知道这个_OE_SOCKETS实际上是什么,所以如果有任何z/OS套接字程序员在那里(你们全部3个),也许你可以给我一个如何工作的概要? 当然,我可以发布testing应用程序。 #include <sys/socket.h> int main() { return AF_INET; } 编译/链接输出: cxx -Wc,xplink -Wl,xplink -o inet_test inet.C “./inet.C”,行5.16:CCN5274(S)“AF_INET”的名称查找没有find声明。 (I)编译文件./inet.C失败。 目标文件未创build。 sys / sockets.h的检查确实包括了我所需要的定义,就我所知,它并没有被任何#ifdef语句阻塞。 但是我注意到它包含以下内容: #ifdef __cplusplus extern "C" { #endif 它基本上封装了整个文件。 不知道是否重要。