He estado teniendo problemas para que la API de sockets C funcione correctamente en C++. Específicamente, aunque estoy incluyendo sys/socket.h
, sigo recibiendo errores de tiempo de compilación que me dicen que AF_INET
no está definido. ¿Me estoy perdiendo algo obvio, o podría estar relacionado con el hecho de que estoy haciendo esta codificación en z/OS
y mis problemas son mucho más complicados?Cómo usar la API de socket C en C++ en z/OS
actualización: Tras realizar investigaciones adicionales, he descubierto que hay una #ifdef
que estoy golpeando. Al parecer z/OS
no es feliz a menos que definen qué "tipo" de tomas que estoy usando con:
#define _OE_SOCKETS
Ahora, tengo personalmente ninguna idea de lo que es en realidad para _OE_SOCKETS
, por lo que si alguna z/OS
zócalos programadores están fuera allí (todos ustedes 3), ¿quizás podría darme un resumen de cómo funciona todo esto?
Claro que puedo publicar una aplicación de prueba.
#include <sys/socket.h>
int main()
{
return AF_INET;
}
Compilar/Salida de enlace:
cxx -WC, xplink -Wl, xplink -o inet_test inet.C
"./inet.C", la línea de 5,16: CCN5274 (S) La búsqueda de nombre para "AF_INET" no encontró una declaración.
CCN0797 (I) Error de compilación para el archivo ./inet.C. Archivo de objeto no creado.
Una comprobación de sys/sockets.h incluye la definición que necesito, y hasta donde puedo decir, no está siendo bloqueada por ninguna instrucción #ifdef.
Sin embargo, he notado que contiene una la siguiente:
#ifdef __cplusplus
extern "C" {
#endif
que encapsula básicamente todo el archivo. No estoy seguro de si importa
Esto no tiene nada que ver con la pregunta original. –