Tôi có một câu hỏi liên quan đến ổ cắm máy khách trên mạng TCP / IP. Giả sử tôi sử dụng
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)
Ổ cắm được tạo sẽ liên kết với cổng 5555. Vấn đề là sau khi kết thúc kết nối
comSocket.shutdown(1)
comSocket.close()
Đang dùng wirehark thì thấy socket đóng FIN, ACK và ACK từ 2 phía, không sử dụng lại được cổng. Tôi nhận được lỗi sau đây:
[ERROR] Address already in use
Tôi tự hỏi làm thế nào tôi có thể xóa cổng ngay lập tức để lần sau tôi vẫn có thể sử dụng cùng cổng đó.
comSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
setsockopt dường như không thể giải quyết được sự cố Cảm ơn bạn!