¿Cuáles son los problemas más comunes en el programa Socket / Network en Linux?

Hola, esta es claramente una lista no exhaustiva y basada en mi propia experiencia:

  1. Reusabilidad de socket: si no establece setsockopt (mysock, SO_REUSEADDR), encontrará problemas vinculantes si reinicia su servidor de socket.
  2. Cuando se usan enchufes con un modelo de subprocesos múltiples y se olvida de desconectar (): vaya, tiene grandes problemas con ese, especialmente si implementó un protocolo de “un comando por conexión”.
  3. definir el final de la carga útil y el tamaño del búfer recv (): creo que esa es la parte más molesta del uso de sockets de red: como probablemente sepa, con socket.recv () no sabrá de inmediato si la transmisión ha terminado o no. Para hacerlo, debes:
    1. coloque el tamaño total de la carga útil en una posición fija de su transmisión.
    2. defina una secuencia de bytes de “Fin de la carga útil” y búsquela.
  4. Soporte de doble pila: Bueno, es un poco molesto hacer un servicio compatible con v4 / v6.

More Interesting

¿Es el protocolo de datagramas de usuario (UDP) una alternativa al protocolo de control de transmisión (TCP)?

¿Cómo suelen hacer los enrutadores el control de acceso?

¿Puedes obtener un número de teléfono con una dirección IP?

Para resolver el problema de agotamiento del espacio de direcciones con IPv4, ¿por qué no simplemente aumentamos la especificación de tamaño de octetos TCP / IP de 32 bits a 64 bits, en lugar de diseñar un nuevo protocolo IPv6?

¿Por qué las capas de sesión, presentación y aplicación en el modelo OSI se combinan en una sola capa de aplicación en el modelo de Internet?

Si tratamos de asegurar las 7 capas OSI, ¿cuál cree que será el costo general que tendremos que enfrentar en términos de almacenamiento y recursos informáticos?

¿Cuál es la mejor IP de la empresa sagaz IP o anovip para trabajar?

¿Funciona un socket de red en la capa 4 o 5 de un modelo OSI o un modelo TCP / IP? Si funciona en la capa 4, entonces qué hace realmente la capa de sesión, cuando los sockets son las conexiones reales que actúan como una interfaz entre la aplicación y las capas inferiores.

Controlador lógico programable (PLC): ¿Cómo se puede configurar la transmisión de datos de Unitronics v350 a través de TCP / IP de modo que cualquier caja de Linux pueda recibirla?

Cómo conectar dos redes (asignando IP)

¿Qué significa el número en un cuadro ACK para una repetición selectiva de ARQ?

¿Qué startup puede identificar clientes potenciales a través de la dirección IP?

¿Dónde puedo encontrar mi dirección IP en mi iPhone?

¿Cuántas capas TCP / IP funcionan cuando uso para enviar correos electrónicos a mi amigo en Gmail? Y cómo van a funcionar

¿Cómo se adquiere una nueva dirección IP?