Hola, en java es exactamente igual, solo cambian las librerias:
1) Creas el socket indicando al constructor la dirección y el puerto al cual te quieres conectar
Sockect cliente
= new Socket("direccion", puerto
)
2) Envias datos con el método
send() y recibes con
read(),
readLine()3) Cierras la conexión con el método
close()No sé como sea en C/C++ pero en Java debes tener cuidado, porque los sockets se leen como si fueran archivos, así que para leer y escribir debes usar los objetos (InputStream y OutputStream respectivamente) que te devuelve los métodos
getInputStream() y
getOutputStream(). Objetos que luego puedes envolver en otros objetos un poco más convenientes para lo que quieres leer (depronto acá es donde, al principio, las cosas se ponen un poco confusas). Solo recuerda que en Java los sockets se leen como si fueran archivos de texto y hay mucha documentación al respecto.
Acá un ejemplo que tengo de cuando comencé con los Sockets en Java:
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
/**
*
* @author once
*/
public class Enviar {
private int port;
this.host = host;
this.port = port;
this.peticion = peticion;
System.
err.
printf("Host: %s", host
); }
int b = 0;
try {
System.
out.
println("enviando: " + peticion
);
// Envia la informacion
salida.write(peticion);
salida.flush();
int bytes = 0;
// Lee la informacion
while((bytes = entrada.read()) > 0) {
buffer += (char)bytes;
}
System.
err.
println("Terminado de leer la petición longitud: " + buffer.
length());
// Cerramos los flujos
entrada.close();
salida.close();
web.close();
System.
out.
println("Recibido del servidor: " + buffer
); return buffer;
System.
err.
println("No se encontro el host"); e.printStackTrace();
System.
err.
println("Error entrada salida"); e.printStackTrace();
}
return "";
}
}
Saludos!