У меня вопрос по поводу клиентского сокета в сети TCP / IP.Допустим, я использую
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)
Созданный сокет будет привязан к порту 5555. Проблема в том, что после завершения соединения
comSocket.shutdown(1)
comSocket.close()
Используя wireshark, я вижу сокет закрытым с помощью FIN, ACK и ACK с обеих сторон, я не могу использовать порт снова.Я получаю следующую ошибку:
[ERROR] Address already in use
Интересно, как я могу очистить порт сразу, чтобы в следующий раз я все еще мог использовать тот же порт.
comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
setsockopt не делаетКажется, в состоянии решить проблему Спасибо!