¿Cómo leer un número entero de un flujo de datos de socket recibido?
1. ¿Qué es el enchufe?
Dos programas en la red intercambian datos a través de una conexión de comunicación bidireccional. Un extremo de esta conexión bidireccional se llama socket. Los sockets se utilizan comúnmente para conectar clientes y proveedores de servicios. Socket es una interfaz de programación de protocolo TCP/IP muy popular. Un Socket está determinado únicamente por una dirección IP y un número de puerto.
Pero TCP/IP no es el único protocolo soportado por Socket, por lo que no es necesaria una conexión entre ambos. En el entorno Java, la programación de Socket se refiere principalmente a la programación de red basada en el protocolo TCP/IP.
2. El proceso de comunicación por socket
El servidor monitorea el puerto en busca de solicitudes de conexión, el cliente envía una solicitud de conexión al servidor y el servidor envía un mensaje de aceptación al servidor. cliente. Conexión establecida. Tanto los servidores como los clientes pueden comunicarse entre sí mediante envío, escritura y otros métodos.
Para un socket completamente funcional, debe incluir la siguiente estructura básica, y su proceso de trabajo incluye los siguientes cuatro pasos básicos:
(1) Crear un socket;;
(2) Abrir el flujo de entrada/salida conectado al socket;
(3) Leer/escribir el socket de acuerdo con un determinado protocolo;
(4) Activar fuera del tomacorriente. (En aplicaciones reales, el cierre mostrado no se utiliza. Aunque muchos artículos lo recomiendan, en mi programa puede deberse a que el programa en sí es relativamente simple y los requisitos no son altos, por lo que no tiene ningún impacto). p>
3. Crear un socket
Crear un socket
Java proporciona dos categorías: Socket y ServerSocket en el paquete java.net, que se utilizan para representar bidireccional. conexiones respectivamente, del lado del cliente y del servidor. Estas son dos clases muy bien encapsuladas y muy cómodas de usar. El método de construcción es el siguiente:
Socket(dirección InetAddress, puerto int);
Socket(dirección InetAddress, puerto int, flujo booleano);
Socket (host de cadena, int prot);
Socket (host de cadena, int prot, flujo booleano);
Socket (implementación de SocketImpl)
Socket (host de cadena , int puerto, InetAddress localAddr, int localPort)
Socket (dirección, puerto, dirección, puerto)
ServerSocket (puerto int);
ServerSocket(int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)
Cliente de socket = nuevo socket (" 127.0.01. ", 80);
server socket server = new server socket(80);
Si ocurre un error al crear el socket, se generará una IOException y se deberá realizar en la dirección del programa. Por lo tanto, se deben detectar o lanzar excepciones al crear un Socket o ServerSocket.