Я работаю с сокетом в python, и, находясь в стадии разработки, мне нужно часто убивать и перезапускать мою программу.
Проблема в том, что однажды убив мой скрипт на python, мне придется долго ждать, чтобы иметь возможность перепривязать сокет прослушивания. Вот фрагмент кода для воспроизведения проблемы:
#!/usr/bin/env python3
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 4321))
try:
s.listen(5)
while True:
(a, b) = s.accept()
print(a.recv(1000))
except KeyboardInterrupt:
print("Closing")
s.shutdown(socket.SHUT_RDWR)
s.close()
Нажатие C-z запускает код исключения, вызывая функции shutdown
и close
, но я не могу перезапустить свою программу до истечения времени ожидания сокета (среда GNU / Linux).
Как мне этого избежать?