//Devuelve el nombre del host local y la dirección IP;
InetAddress i = InetAddress.getLocalHost();
i.getHostAddress();//IP
i.getAddress();//???
//Obtener información relacionada con la computadora a través del nombre de la computadora;
InetAddress i = InetAddress.getByName("Livingstone-PC");
//Obtener información relacionada con el host a través del nombre de dominio
InetAddress ibaidu = InetAddress.getByName("www.baidu.com");
URL URL = nueva URL ("http://localhost:8080/demo.html");
url.getHost();
Enchufe (cliente):
Cuando se establece el objeto, puede conectarse al host especificado. Debido a que TCP está orientado a la conexión, al establecer el servicio de socket, debe existir un servidor y la conexión se realiza correctamente. Una vez establecida la conexión, la transmisión de datos se realiza en el canal. ;
//Crea el servicio de socket del cliente y especifica el host y el puerto de destino;
Zócalo s = nuevo Zócalo("cj-PC", 10003);
// Para enviar datos, se debe obtener el flujo de salida en el flujo del socket;
OutputStream fuera = s.getOutputStream();
//PrintWriter out = new PrintWriter(s.getOutputStream(),true);out.println("Hola");
out.write("hola".getBytes());
//recibimos el mensaje de respuesta
InputStream en = s.getInputStream();
byte[] bufIn = nuevo byte[1024];
int num = in.read(bufIn);
System.out.println(new String(bufIn, 0, num));
s.close();// El objeto de secuencia se encapsula en el socket y cierra automáticamente el objeto de secuencia;
ServerSocket (servidor):
Establezca el servicio de socket del lado del servidor, ServerSocket, y escuche un puerto;
Obtenga el objeto del cliente conectado a través del método de aceptación del objeto. Si no hay conexión, esperará (bloqueará):
Si el cliente envía datos, el servidor debe utilizar el flujo de lectura del objeto de cliente correspondiente para obtener los datos enviados por el cliente;
ServerSocket ss = nuevo ServerSocket (10003);
//ServerSocket(int port,int backlog); el número máximo de conexiones;
Enchufe s = ss.accept();
InputStream en = s.getInputStream();
byte[] buf = nuevo byte[2014];
int len = in.read(buf);
Cadena rec = nueva cadena (buf, 0, len);
System.out.println(rec);
// devolver el mensaje
OutputStream fuera = s.getOutputStream();
out.write("recibido".getBytes());
s.close();//El servidor cerrará automáticamente el cliente;
(1)Cliente:
Establezca un servicio de socket y especifique el host y el puerto al que conectarse;
Obtenga el flujo de salida en el flujo de socket, escriba los datos en el flujo y envíelos al servidor a través de la red;
Obtenga el flujo de entrada en el flujo del socket, obtenga los datos devueltos por el servidor y cierre los recursos del cliente;
DatagramSocket: envía un fragmento de datos de texto mediante transmisión UDP;
Enviar:
//Crear servicio udp, crear un objeto DatagramSocket y proporcionar un número de producto;
Conector DatagramSocket = nuevo DatagramSocket (8888);
// Determinar los datos y encapsularlos en un paquete de datos, DatagramPacket (es necesario especificar el número de puerto de la máquina de destino);
byte[] buf = "udp ya voy".getBytes();
DatagramPacket dp = nuevo DatagramPacket(buf, buf.length,
InetAddress.getByName("Nombre-Máquina"), 10086);
// enviar;
socket.enviar(dp);
// cierre;
socket.cerrar();
Recibir:
//Definir el servicio udpsocket. Normalmente se monitorea un puerto, que en realidad define una identificación digital para la aplicación de red receptora;
Conector DatagramSocket = nuevo DatagramSocket(10086);
while (true) { //El propósito es monitorear continuamente
byte[] buf = nuevo byte[1024];
//Definir paquete de datos para almacenar datos;
DatagramPacket dp = nuevo DatagramPacket(buf, buf.length);
// Almacena los datos recibidos en el paquete de datos mediante el método de recepción del servicio;
socket.receive(dp);//Método de bloqueo, bloqueado aquí si no hay datos;
// Obtener los datos mediante el método del paquete de datos;
Cadena ip = dp.getAddress().getHostAddress();
Datos de cadena = nueva cadena (dp.getData(), 0, dp.getLength());
int puerto = dp.getPort();
}
Socket s = new Socket("Nombre de la máquina", 10005);
OutputStream fuera = s.getOutputStream();
FileInputStream fis = nuevo FileInputStream("awf.jpg");
byte[] buf = nuevo byte[1024];
int longitud = 0;
mientras ((len = fis.read(buf)) != -1) {
out.write(buf, 0, len);
}
// dejar de enviar datos
s.shutdownOutput();
ServerSocket ss = new ServerSocket(10005); //el método ss.accept() tiene efecto de bloqueo;
// Se puede crear un hilo separado para cada Socket obtenido mediante el método aceptar();