Hola, esta es claramente una lista no exhaustiva y basada en mi propia experiencia:
- Reusabilidad de socket: si no establece setsockopt (mysock, SO_REUSEADDR), encontrará problemas vinculantes si reinicia su servidor de socket.
- 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”.
- 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:
- coloque el tamaño total de la carga útil en una posición fija de su transmisión.
- defina una secuencia de bytes de “Fin de la carga útil” y búsquela.
- Soporte de doble pila: Bueno, es un poco molesto hacer un servicio compatible con v4 / v6.