У мене питання щодо клієнтського сокета в мережі 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)
setockopt, здається, не може вирішити проблему Дякую!