[Programación de red Java] Socket socket

Hola a todos ~ Soy su viejo amigo: Protegiendo a Xiao Zhou ღ , este número les trae el concepto de premisa de la programación de red Socket socket, el sistema operativo proporciona Socket para encapsular los detalles del protocolo subyacente y la lógica de comunicación, lo que permite que las aplicaciones interactúen con la red a través de una API simple e intuitiva. Entonces, desde un punto de vista objetivo, el desarrollo basado en Socket es programación en red. Artículos conceptuales~~
Estén atentos para más emoción: Protegiendo a Xiaozhou ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★*'

1. Conceptos básicos de programación de redes

La programación de redes se refiere a la escritura de programas (procesos) que transmiten datos a través de una red. Esto incluye el desarrollo de aplicaciones que utilizan protocolos de red, como TCP/IP y HTTP, para permitir la comunicación y el intercambio de datos entre diferentes computadoras.

Cada uno de nuestros programas de capa de aplicación se puede considerar como un proceso, y cada proceso creará un subproceso para ejecutarse de forma predeterminada, que se puede entender como la función main() en C/C++ o Java, y la función main() se puede considerado como el hilo principal, el flujo de ejecución principal.

La mayor importancia de Internet radica en el intercambio de recursos. La importancia de la programación de red es que puede hacer posible el intercambio y la comunicación de datos entre diferentes computadoras, y conectar computadoras y dispositivos distribuidos en diferentes ubicaciones para que puedan realizar la transmisión y el intercambio de datos. recursos, etc Siempre que sea un programa que transmite datos en base a la red, pertenece a la categoría de programación en red.

En la vida diaria, nuestra red está realmente conectada a los servidores de los principales operadores (China Mobile, China Unicom, etc.), nuestros dispositivos envían solicitudes a los servidores de Baidu a través del navegador de Baidu, como buscar: fotos de mujeres hermosas, servidores de Baidu (aplicación terminal) analizará esta solicitud para ver si tiene una imagen de una mujer hermosa. Si es así, el servidor de Baidu responderá al dispositivo solicitante con la imagen de una mujer hermosa. Estas operaciones involucran algunos puntos de conocimiento: la aplicación del navegador Baidu debe poder enviar información en la red, a quién: servidor Baidu, la capacidad de conectarse con otros dispositivos, capacidad de recepción: navegador Baidu y servidor Baidu Después de establecer la conexión , es necesario poder recibir y analizar de manera real y efectiva la información enviada por el servidor de Baidu, por lo que el servidor de Baidu también debe tener la misma función.

Proceso A: obtener los recursos de red deseados a través de la programación

Proceso B: Proporcionar los recursos de red que otros necesitan a través de la programación


1.1 Extremo emisor y extremo receptor

Durante una transferencia de datos de red:

Extremo emisor: se refiere al dispositivo o programa encargado de enviar los datos en la comunicación. El extremo emisor convierte los datos a transmitir en una señal o paquete de datos específico y lo envía al extremo receptor a través de la red o medio de transmisión. En la comunicación por redes informáticas, el remitente puede ser cualquier dispositivo capaz de enviar mensajes, como ordenadores, teléfonos móviles, servidores, etc.

Receptor : generalmente se refiere a un dispositivo o sistema que recibe datos durante la transmisión de datos. En el campo de la comunicación, el extremo receptor puede ser una computadora, un teléfono móvil, un televisor, un enrutador, etc., que se utiliza para recibir información del extremo emisor y decodificarla para su visualización, almacenamiento o procesamiento posterior.

Transceptor: se refiere a un dispositivo o componente capaz de enviar y recibir datos. En el campo de la comunicación, el extremo del transceptor se usa a menudo como un término general para ambos extremos de un enlace de comunicación. Los transceptores son una parte vital del sistema de comunicación, son los encargados de transferir la información de un nodo a otro y son la base para realizar la comunicación.

El extremo emisor y el extremo receptor son solo el concepto de flujo de datos generado por una transmisión de datos de red.


1.2 Solicitud y Respuesta

Para dar un ejemplo en la vida, Zhang San hace una llamada a Li Si. Lo primero que debe hacer es encontrar el número de teléfono de Li Si y luego hacer clic para marcar. : ¿Moisés Moisés? , se puede considerar que la operación de Li Si responde a la solicitud de Zhang San. En este momento, el extremo de envío se convierte en el hierro viejo de Li Si, y el extremo receptor es el hierro viejo de Zhang San.

También es como ir a un restaurante a comer, le dices al jefe, jefe, quiero comer arroz frito con huevos-pedido, el jefe responde diciendo que ha recibido tu pedido, y rápidamente copia la comida, y antes de darle la comida, primero Salude, oficial invitado, su comida está lista: Sirva un arroz frito con huevo - Respuesta.


1.3 Cliente y servidor

Como se mencionó anteriormente, el proceso de navegar por Internet en nuestra vida diaria es acceder a los servidores de otros operadores importantes, primero, acceder a la red en un entorno grande (China Mobile, China Unicom), y luego vincularse a los servidores de cada operador. para acceder a los servidores correspondientes.H.

Cliente: El proceso del lado que intenta obtener el servicio se denomina cliente. Por ejemplo: use el navegador Baidu para acceder al servidor de Baidu, busque imágenes de bellezas, el servidor dice que está bien, tengo muchas aquí, se las daré todas, y luego la aplicación del navegador Baidu obtendrá muchas fotos de bellezas .

Servidor: En el escenario de transmisión de datos de red, el proceso de la parte que proporciona el servicio se denomina servidor.

Para el servidor, por un lado, proporciona los recursos de servicio que el cliente quiere obtener, y por otro lado, proporciona al cliente la función de ahorrar recursos en el servidor.


Dos, Zócalo

Socket (socket) es un concepto en la programación de redes. Es una forma de comunicarse a través de la red. Es una tecnología para la comunicación en red proporcionada por el sistema operativo. Socket se utiliza para encapsular los detalles del protocolo subyacente y la lógica de comunicación. Las aplicaciones pueden interactuar con la red a través de una API sencilla e intuitiva. Entonces, desde un punto de vista objetivo, el desarrollo basado en Socket es programación en red.

La red real adopta el modelo de red TCP/IP. El protocolo de capa inferior proporciona servicios al protocolo de capa superior. El protocolo de capa superior puede llamar directamente al protocolo de capa inferior, pero las llamadas entre capas no están permitidas. El transporte capa proporciona servicios para la capa de aplicación, por lo tanto, Socket también puede considerarse como la interfaz proporcionada por la capa de transporte a la capa de aplicación.

El nombre completo de API (interfaz de programación de aplicaciones), en términos generales, es un puente para la interacción de información entre software. Por ejemplo, qq proporciona una interfaz (API) para la verificación de cuentas, y WeChat proporciona una interfaz para el pago de WeChat, para que otras aplicaciones uso, por lo que algunas aplicaciones proporcionarán las funciones de uso de inicio de sesión QQ, inicio de sesión de WeChat, pago de WeChat, etc. Por supuesto, otros deben pagar a Tencent por usar esta función.

2.1 Clasificación de funciones de socket

En primer lugar, en un entorno de red real, las partes de la comunicación deben cumplir con el protocolo de red estándar. El protocolo de red estipula la especificación de comunicación y los protocolos se superponen según sus funciones. El común es el TCP/IP cinco- modelo de red de capas:

El blogger no presentará las funciones principales de cada protocolo de capa en detalle. Los amigos interesados ​​pueden consultar el blog de otro blogger: Protocolos a los ojos de los programadores: TCP/IP red de cinco capas model_protect Xiao Zhouღ's blog-CSDN blog

Gestión en capas de protocolos, se estipula que los protocolos de capa inferior brindan servicios a los protocolos de capa superior, y los protocolos de capa superior llaman a los protocolos de capa inferior, y las llamadas entre capas no están permitidas.

La programación de red se desarrolla desde la perspectiva de la capa de aplicación, por lo que el protocolo de la capa de transporte debe proporcionar servicios para la capa de aplicación, y la capa de aplicación solo puede interactuar directamente con la capa de transporte.

Socket (socket) se divide principalmente en las siguientes tres categorías para los protocolos de la capa de transporte:

  • Socket de flujo de bytes orientado: basado en el protocolo TCP de la capa de transporte

El socket orientado al flujo de bytes es un método de transmisión de red, que se implementa en función del protocolo TCP de la capa de transporte. Trata los datos como un flujo de bytes no estructurado y garantiza la confiabilidad de los datos durante la transmisión de datos.

Características del protocolo TCP :

  1. Orientado a la conexión: antes de transmitir datos, las dos partes que se comunican primero establecen una conexión confiable
  2. Transmisión confiable: el protocolo TCP tiene un mecanismo de retransmisión de tiempo de espera y un mecanismo de respuesta de reconocimiento. Cuando se descubre que no hay problema con la conexión, pero los datos no se transmiten con éxito, los datos se reenviarán.
  3. Orientado al flujo de bytes: literalmente, use transmisión de flujo de bytes
  4. Búfer de recepción, búfer de envío: en la comunicación de datos de red, el búfer utilizado para almacenar los datos que se enviarán o recibirán, con el concepto de búfer, puede ayudar a coordinar la velocidad de transmisión de datos entre el remitente y el receptor, y minimizar el riesgo de pérdida de datos o confusión...
  5. Tamaño ilimitado de datos transferidos: flujo de bytes, transmisión, siempre que haya una conexión.
  6. Comunicación full-duplex: ambas partes de la comunicación pueden intercambiar información al mismo tiempo
  • Socket orientado a datagramas: basado en el protocolo UDP de la capa de transporte

El socket orientado a datagramas es un método de comunicación de red basado en el protocolo UDP de la capa de transporte. No proporciona garantías de confiabilidad ni mecanismos de control de flujo, pero tiene baja latencia y es adecuado para aplicaciones en tiempo real.

Características del protocolo UDP :

  1. Sin conexión: antes de transmitir datos, los comunicantes no dependen de establecer una conexión, sino que solo necesitan saber quién se los envía a quién.
  2. Transmisión no confiable: solo responsable de enviar, no prestar atención a si la transmisión de datos es exitosa y no hacer nada si no lo es.
  3. Orientado a datagramas: los datagramas UDP se utilizan para la transmisión, y los datagramas pueden entenderse como datos que se transmiten pieza por pieza.
  4. Hay un concepto de caché.
  5. El tamaño de la transmisión de datos es limitado: el datagrama UDP puede ocupar un máximo de 64k, 1k = 1024 bytes
  6. Comunicación full-duplex: ambas partes de la comunicación pueden intercambiar información al mismo tiempo

 Para obtener información específica, puede ver la publicación del blog del protocolo UDP de blogger

  • Orientado a sockets sin procesar: basado en un protocolo de capa de transporte personalizado

 Raw socket: Es un socket que procesa paquetes de red raw, sus principales usos son:

  • Enviar paquetes IP personalizados
  • Enviar paquetes ICMP
  •  El modo de escucha de la tarjeta de red, escuchando los paquetes de datos en la red.
  • Enmascarar dirección IP
  • Implementación del protocolo de autoposicionamiento

Hasta el momento, los bloggers han terminado de compartir el concepto de sockets Socket en la programación de redes. Espero que sea útil para todos. Si hay algo mal, critiquen y corrijan. 

Este problema está incluido en la columna del blogger: JavaEE, que es adecuado para programadores principiantes. Los amigos interesados ​​pueden suscribirse para ver otros "conceptos básicos de JavaEE".

Vista previa del próximo número: Java utiliza sockets de socket para implementar la comunicación cliente-servidor basada en el protocolo UDP.

Gracias a todos los que leyeron este artículo, y se avecinan más eventos emocionantes: Proteger Xiaozhou ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★* 

Te conocí, todas las estrellas están cayendo sobre mi cabeza...

Supongo que te gusta

Origin blog.csdn.net/weixin_67603503/article/details/130204097
Recomendado
Clasificación