Cómo solucionar el problema de no poder asignar la dirección solicitada
Reducir el tiempo de espera del puerto de estado de espera
No se puede asignar la dirección solicitada porque el puerto de conexión del cliente asignado por Linux está agotado y no se puede establecer la conexión del socket, aunque el socket está cerrado normalmente. El puerto no se libera inmediatamente, pero está en el estado TIMEWAIT y espera 60 segundos de forma predeterminada antes de liberarse.
Reducir el tiempo de espera del puerto de estado de espera:
Reducir el tiempo de espera después de que se libera el puerto. El valor predeterminado es 60 segundos y se modifica a 15 ~ 30 segundos.
Modifique la configuración del protocolo tcp/ip configurando /proc/sys/net/ipv4/tcptwresue. El valor predeterminado es 0, cámbielo a 1 y libere el puerto TIMEWAIT para nuevas conexiones.
Modifique la configuración del protocolo tcp/ip para reciclar rápidamente los recursos del socket. El valor predeterminado es 0 y se modifica a 1.
El cliente se conecta con frecuencia al servidor. Dado que cada conexión finaliza en un corto período de tiempo, genera mucho TIMEWAIT, por lo que los números de puerto disponibles se agotan y no se pueden vincular nuevas conexiones. Puerto, es decir, "No se puede asignar la dirección solicitada". Es un problema del lado del cliente, no del lado del servidor. A través de netstat, vi muchas conexiones en estado TIMEWAIT.