Я знаю, что уже есть подобный вопрос, но ни одно из решений не решает мою проблему.Более ssh я запускаю скрипт на удаленном клиенте с
nohup python script.py &
Этот скрипт содержит следующее:
TCP_PORT = 5005
host = ""
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.settimeout(40)
s.bind((host, TCP_PORT))
s.listen(0)
c, addr = s.accept()
...some code...
try:
while True:
c.send(str(1).ljust(16).encode())
except Exception as e:
print("exiting main")
print(e)
c.close()
s.close()
Когда я запускаю код два раза подряд в строке, второй разЯ всегда получаю вышеупомянутую ошибку.Журнал вывода Python:
exiting main
[Errno 32] Broken pipe
Traceback (most recent call last):
File "LogImages.py", line 204, in <module>
main(interv)
File "LogImages.py", line 114, in main
s.bind((host, TCP_PORT))
OSError: [Errno 98] Address already in use
Итак, очевидно, что процесс вызывает c.close () и s.close ().Так как же адрес все еще может использоваться?