Как «освободить» TCP-порт?

У меня есть код, который прослушивает определенный TCP-порт. Однако, когда я останавливаю этот код и быстро его перезапускаю, я вижу ошибку

ERROR: could not bind to socket on 0.0.0.0:7700 

Если я подожду минуту или около того, внезапно этот порт «свободен», и код снова запустится.

Мой вопрос: есть ли способ заставить этот порт «бесплатно»? Чтобы сразу запустить мой код, не дожидаясь минуты или около того?

  • Закройте необходимые порты
  • log PID каждой попытки подключения
  • Почему netstat не показывает мне порты?
  • Лучше ли устанавливать -j REJECT или -j DROP в iptables?
  • Rsync - Поврежденный MAC на входе
  • Как я могу совместно использовать stdout между несколькими процессами?
  • Почему пропускная способность TCP намного больше, чем пропускная способность UDP?
  • связанный, но не прослушивающий процесс
  • One Solution collect form web for “Как «освободить» TCP-порт?”

    Вы можете использовать SO_REUSEADDR

     int optval = 1; /* create socket using socket */ setsockopt(s1, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval); /* bind socket */ 

    Вы получаете эту ошибку, поскольку протокол TCP заставляет сервер помещать сокет, который вы только что закрыли, в статус TIME_WAIT течение времени, определенного в net.ipv4.tcp_fin_timeout . Это делается для того, чтобы действительно каждый пакет, который другой одноранговый узел мог послать после того, как ваш сервер закрыл сокет, все еще обрабатывается правильно.

    Вот хорошее описание этой проблемы в верхнем ответе потока: В чем смысл SO_REUSEADDR (опция setsockopt) – Linux? ,

    Interesting Posts

    Как я могу перечислить все файлы, но только в каталогах, у которых нет подкаталогов?

    Grub возвращает Файл не найден при загрузке на новый диск с Debian Jessie

    Как я могу повлиять на отображение виртуального дисплея (X Server) после загрузки?

    Как сделать все модули одним файлом при использовании yum для установки?

    Ошибка сборки mysql2 gem при установке redmine

    setpgrp вызывает tty go

    Что такое «Порядок операций» Баша при разборе команды?

    Что означает все эти дополнительные данные от rsync?

    dpkg-reconfigure: не найден при работе в cron

    Как удалить несколько случайных строк из текстового файла с помощью sed?

    Почему в терминале возникает следующая ошибка при использовании команд Linux?

    Высокая производительность процессора Perl

    Может перемещаться, но не может удалить пустой / домашний каталог (root, no attr, RW файловая система, а не точка подключения, а не занята)

    Как связать подкаталоги только с папкой максимального разряда с помощью команды linux?

    Шифровать базу данных postgresql

    Linux и Unix - лучшая ОС в мире.