Cuando queremos conectarnos a un servidor a través de la red usando TCP/IP en Java, necesitamos crear un objeto java.net.Socket y conectarnos al servidor. Si desea utilizar Java NIO, también puede crear un objeto SocketChannel en Java NIO.
Crear zócalo
El siguiente código de muestra está conectado al puerto 80 en el servidor con la dirección IP 78.64.84.171. Este servidor es nuestro servidor web (www.VeVB.COm) y el puerto 80 es el puerto del servicio web.
Copie el código de código de la siguiente manera:
Zócalo zócalo = nuevo zócalo ("78.46.84.171", 80);
También podemos usar nombres de dominio en lugar de direcciones IP como en el siguiente ejemplo:
Copie el código de código de la siguiente manera:
Zócalo zócalo = nuevo zócalo("VeVB.COm", 80);
El zócalo envía datos
Para enviar datos a través de Socket, necesitamos obtener el flujo de salida del Socket (OutputStream). El código de muestra es el siguiente:
Copie el código de código de la siguiente manera:
Zócalo zócalo = nuevo zócalo("VeVB.COm", 80);
OutputStream salida = socket.getOutputStream();
out.write("algunos datos".getBytes());
salida.flush();
fuera.cerrar();
socket.cerrar();
El código es muy simple, pero si deseas enviar datos al servidor a través de la red, no debes olvidar llamar al método flush(). La implementación TCP/IP subyacente del sistema operativo primero colocará los datos en un bloque de caché de datos más grande, y el tamaño del bloque de caché se adaptará al tamaño del paquete TCP/IP. (Nota del traductor: llamar al método flush() solo escribe datos en el caché del sistema operativo y no garantiza que los datos se enviarán inmediatamente)
El zócalo lee datos
Para leer datos del Socket, necesitamos obtener el flujo de entrada del Socket (InputStream). El código es el siguiente:
Copie el código de código de la siguiente manera:
Zócalo zócalo = nuevo zócalo("VeVB.COm", 80);
InputStream en = socket.getInputStream();
int datos = in.read();
//... leer más datos...
cercar();
socket.cerrar();
El código no es complicado, pero debe tenerse en cuenta que leer datos del flujo de entrada del Socket no lee el archivo. Se llama al método read () hasta que se devuelve -1, porque para el Socket, solo cuando el servidor Cuando. Cuando se cierra la conexión, el flujo de entrada del Socket devolverá -1, pero de hecho el servidor no sigue cerrando la conexión. Supongamos que queremos enviar varias solicitudes a través de una única conexión, entonces cerrar la conexión en este caso sería una tontería.
Por lo tanto, al leer datos del flujo de entrada del Socket, debemos saber la cantidad de bytes que se leerán. Esto se puede lograr dejando que el servidor le diga a los datos cuántos bytes se enviaron o estableciendo caracteres especiales al final de los datos. Se implementa el método de marcado.
Cerrar enchufe
Después de usar el Socket, debemos cerrar el Socket y desconectarnos del servidor. Para cerrar un Socket, solo necesita llamar al método Socket.close() El código es el siguiente:
Copie el código de código de la siguiente manera:
Zócalo zócalo = nuevo zócalo("VeVB.COm", 80);
socket.cerrar();
(Finaliza el texto completo)