31/05/2014, 03:06
|
| | Fecha de Ingreso: mayo-2014
Mensajes: 2
Antigüedad: 10 años, 5 meses 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 =) |