LINUX.ORG.RU

зарезервировать tcp порт

 


0

1

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

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

проблема в том, что если этот «другой сервер» запускать когда игровой и бот-сервера гамают на полную, то он не может прибайндится к указаному порту с сообщением: «address already in use». и так может продолжаться ооочень долго.

вопрос в том, как победить? можно ли как-то зарезервировать конкретный порт?

спасибо.

★★★

Последнее исправление: niXman (всего исправлений: 1)

Ответ на: комментарий от pon4ik

Добавить где то SO_REUSEADDR?

вроде бы похоже на решение... пробую...

Запускать в докере с портмэппингом?

оф, докера мне еще не хватало %)

niXman ★★★
() автор топика
Ответ на: комментарий от SevikL

умеет. но это придется сообщать о другом порте и тем программам, которые коннектятся к этому «другому серверу» %)

niXman ★★★
() автор топика
Ответ на: комментарий от niXman

Насчёт докера - это ты зря, там всё изи, и удобно.

pon4ik ★★★★★
()

Не понял. У тебя два сервера используют один и тот же порт? Или они рандомно порты выбирают? Или что?

tiandrey ★★★★★
()
Ответ на: комментарий от tiandrey

У тебя два сервера используют один и тот же порт? Или они рандомно порты выбирают? Или что?

Боты порт забирают. Наверное надо ковырять чота типа /proc/sys/net/ipv4/ip_local_port_range и /proc/sys/net/ipv4/ip_local_reserved_ports

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.