Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2014, 03:06
Griffith_Hawk
 
Fecha de Ingreso: mayo-2014
Mensajes: 2
Antigüedad: 10 años
Puntos: 0
Sockets entre Java y C++

Muy buenas.

Estoy programando un servidor en Java y un cliente en C++, de tal manera que se envían mensajes Strings entre ellos. El problema lo tengo con C++, que me está dando infinitos quebraderos de cabeza...

En mi servidor, creo el socket servidor que espera conexiones. Tras la conexión espero un mensaje del cliente con:

entrada = new DataInputStream(socketCliente1.getInputStream());
mensajeRecibido=entrada.readUTF();

En mi cliente creo el socket y lo conecto de la siguiente manera:

SOCKET ConnectSocket = INVALID_SOCKET;
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
struct addrinfo *result = NULL, *ptr = NULL, hints;

ZeroMemory(&hints, sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;


iResult = getaddrinfo("192.168.0.17", DEFAULT_PORT, &hints, &result);
ptr = result;
ConnectSocket = socket(ptr->ai_family, ptr->ai_socktype, ptr->ai_protocol);
iResult = connect(ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen);
freeaddrinfo(result);

El problema viene aquí... ¿Cómo envío el String al servidor Java?

Y si escribo con el servidor Java como:
salida = new DataOutputStream(socketCliente1.getOutputStream()) ;
salida.writeUTF("BLABLABLABLA");

¿Cómo podría recibirlo con mi cliente C++?

A ser posible no querría tocar el código en Java, puesto que tiene que ser a su vez compatible con clientes Java (los cuales no he tenido ningún problema en implementar).

Muchas gracias =)