Tengo una pregunta sobre el socket del cliente en la red TCP / IP. Digamos que uso
try:
comSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(1)
try:
comSocket.bind(('', 5555))
comSocket.connect()
except socket.error, msg:
sys.stderr.write("[ERROR] %s\n" % msg[1])
sys.exit(2)
El socket creado estará vinculado al puerto 5555. El problema es que después de finalizar la conexión
comSocket.shutdown(1)
comSocket.close()
Al usar wirehark, veo el zócalo cerrado con FIN, ACK y ACK desde ambos lados, no puedo usar el puerto nuevamente. Obtuve el siguiente error:
[ERROR] Address already in use
Me pregunto cómo puedo limpiar el puerto de inmediato para que la próxima vez pueda usar ese mismo puerto.
comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
setsockopt no parece poder resolver el problema ¡Gracias!