Python: Soquete de ligação: “Endereço já em uso”
Tenho uma pergunta sobre o soquete do cliente na rede TCP / IP. Digamos que eu use
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)
O soquete criado será vinculado à porta 5555. O problema é que após o término da conexão
comSocket.shutdown(1)
comSocket.close()
Usando o wireshark, vejo o soquete fechado com FIN, ACK e ACK de ambos os lados, não consigo usar a porta novamente. Estou tendo o erro a seguir
[ERROR] Address already in use
Eu me pergunto como posso limpar a porta imediatamente, para que da próxima vez ainda possa usar a mesma port
comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
setsockopt parece não conseguir resolver o problema Obrigado!