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가 문제를 해결할 수없는 것 같습니다. 감사합니다!