相关疑难解决方法(0)

如何在z/OS上的C++中使用C套接字API

我在让C套接字API在C++上正常工作时遇到问题z/OS.

虽然我包括在内sys/socket.h,但我仍然遇到编译时错误,告诉我AF_INET没有定义.

我是否遗漏了一些显而易见的事情,或者这与这样一个事实相关:继续z/OS使我的问题变得更加复杂?


更新:经过进一步调查,我发现有一个#ifdef我正在打击.z/OS除非我定义我使用的哪种"类型"套接字,否则显然不高兴:

#define _OE_SOCKETS
Run Code Online (Sandbox Code Playgroud)

现在,我个人不知道这_OE_SOCKETS实际上是什么,所以如果任何z/OS套接字程序员在那里(你们三个人),或许你可以给我一个如何运作的概述?


测试应用程序

#include <sys/socket.h>

int main()
{
    return AF_INET;
}
Run Code Online (Sandbox Code Playgroud)

编译/链接输出:

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.
Run Code Online (Sandbox Code Playgroud)

检查sys/sockets.h确实包含了我需要的定义,据我所知,它没有被任何#ifdef语句阻止.

但我注意到它包含以下内容:

#ifdef __cplusplus
  extern "C" {
#endif
Run Code Online (Sandbox Code Playgroud)

它基本上封装了整个文件.不确定是否重要.

c c++ sockets mainframe zos

146
推荐指数
9
解决办法
1万
查看次数

标签 统计

c ×1

c++ ×1

mainframe ×1

sockets ×1

zos ×1