¿Cómo se representan los sockets de datagramas y los paquetes de datagramas?
La siguiente es una descripción de cuatro puntos:
1. ¿Qué es Socket?
Dos programas en la red intercambian datos a través de una conexión de comunicación bidireccional. Un extremo de este enlace bidireccional se llama Socket. Socket se usa generalmente para realizar la conexión entre el cliente y el servidor. Socket es una interfaz de programación muy popular para el protocolo TCP/IP. Un socket está determinado únicamente por una dirección IP y un número de puerto.
Sin embargo, los tipos de protocolo admitidos por Socket no se limitan a TCP/IP, por lo que no existe una conexión necesaria entre los dos. 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 de Socket
El lado del servidor escucha para ver si hay una solicitud de conexión en un puerto determinado. El lado del cliente envía una solicitud de conexión al lado del servidor. y el lado del servidor envía una solicitud de conexión al lado del cliente. El final devuelve un mensaje de aceptación. Se establece una conexión. Tanto el lado del Servidor como el del Cliente pueden comunicarse entre sí mediante métodos como Enviar y Escribir.
Para un Socket completamente funcional, debe contener la siguiente estructura básica y su proceso de trabajo incluye los siguientes cuatro pasos básicos:
(1) Crear Socket
<; p>(2) Abrir el flujo de entrada/salida conectado al Socket(3) Realizar operaciones de lectura/escritura en el Socket de acuerdo con un determinado protocolo; Cierre el socket (en aplicaciones reales, el cierre que se muestra no se utiliza. Aunque muchos artículos recomiendan esto, 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. .)
3. Crear Socket
Crear Socket
Java proporciona dos clases, Socket y ServerSocket, en el paquete java.net, que se utilizan para representar el cliente y el servidor de conexiones bidireccionales respectivamente. Estas son dos clases muy bien encapsuladas y muy cómodas de usar. Su método de construcción es el siguiente:
Socket(dirección InetAddress, puerto int);
Socket(dirección InetAddress, puerto int, flujo booleano);
Socket (String host, int prot);
Socket(String host, int prot, boolean stream);
Socket(SocketImpl impl)
Socket(String host , int puerto, InetAddress localAddr, int localPort)
Socket(InetAddress dirección, int puerto, InetAddress localAddr, int localPort)
ServerSocket(int puerto);
ServerSocket (int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)
Donde dirección, host y puerto son la dirección IP de la otra parte en la conexión bidireccional, respectivamente, nombre de host y número de puerto, stream indica si el socket es un socket de flujo o un socket de datagrama, localPort indica el número de puerto del host local, localAddr y bindAddr son las direcciones de la máquina local (la. dirección de host de ServerSocket), impl es la clase principal del socket, que se puede usar. La creación de serverSocket se puede usar para crear Socket. El recuento representa el número máximo de conexiones que el servidor puede admitir.