Как подключиться к порту сразу, избегая socket_bind (): невозможно привязать адрес?

При запуске кода, который предполагается читать с порта TCP / IP, я часто получаю следующее сообщение (в зависимости от того, какой язык использовался):

socket_bind(): unable to bind address 

Я знаю, что это происходит, когда какой-то другой процесс прослушивает этот порт / привязан к этому порту (я не знаю точной фразы для описания), поэтому мой код не может прослушивать этот порт. Тем не менее, это мой код, который я просто остановил (CTRL-C), который блокирует этот порт! Кажется, что есть некоторый тайм-аут, и после ожидания некоторого времени (около 30 секунд) я могу запустить свой код, чтобы прослушивать этот конкретный порт без проблем.

Я бы хотел знать:

  • Почему порт все еще заблокирован, хотя я остановил код?
  • Как заставить систему выпустить этот порт, чтобы я мог перезапустить свой код и начать прослушивание этого порта?

One Solution collect form web for “Как подключиться к порту сразу, избегая socket_bind (): невозможно привязать адрес?”

Предполагая, что вы говорите на C / C ++, используйте setsockopt() и SO_REUSEADDR . Это позволяет повторно использовать до тех пор, пока нет активного процесса прослушивания этого порта.

Изменить: причина, по которой он все еще используется, заключается в том, что вы не закрыли сокет соответствующим образом. Вы Control-C убили его. Вы можете использовать netstat чтобы увидеть порты, которые открыты или еще не закрыты.

http://www.beej.us/guide/bgnet/output/html/multipage/setsockoptman.html

https://stackoverflow.com/questions/9207781/error-in-binding-port-address-already-in-use-tcp-socket-programming-in-unix

https://stackoverflow.com/questions/10071107/rebinding-a-port-to-datagram-socket-on-a-difftent-ip

  • Поиск локальных процессов, запускающих TCP-соединения
  • Сброс TCP после SYN ACK, возможно, связанный с "no route to host"
  • Как захватить трафик на виртуальных интерфейсах?
  • Значение bash -i> & / dev / tcp / HOST / PORT 0> & 1?
  • надежная передача файлов через TCP
  • Как устранить неполадки при попытке выполнить ping для маршрутизатора в Linux-окне?
  • Настройка тайм-аута rsync TCP
  • Как настроить configure keepalive на Centos7
  • Тестирование открытого TCP-порта в сценарии bash
  • Порт 80 отказался от Linux (Ubunt 12.04)
  • TCP-потоки, сосуществующие с UDP при использовании SFQ (стохастическая честная очередь)
  • Linux и Unix - лучшая ОС в мире.