Запустить команду при подключении пользователя?

#windows #linux #ping

#Windows #linux #пинг

Вопрос:

Возможно ли прослушивать порт и запускать команду, когда пользователь пытается подключиться к этому порту? Идеальное приложение для сервера, которое должно запускаться только тогда, когда кто-то действительно его использует. Решения для Windows или Linux работают.

Комментарии:

1. Если вы прослушиваете порт и по запросу клиента что-то делаете, это в некотором смысле тоже сервер 🙂

Ответ №1:

linux / unix:

man nc

 NAME
       nc - TCP/IP swiss army knife
  

некоторые параметры, которые могут вас заинтересовать

  -l           listen mode, for inbound connects
-p port      local port number (port numbers can be individual or ranges: lo-hi [inclusive])
 -e prog      specify program to exec after connect (use with caution)
  

я думаю, что nc также доступен под платформой Windows.

Ответ №2:

Одним из решений может быть использование inetd или xinetd, укажите номер порта и программу для запуска, для вас, вероятно, сценарий оболочки.

Ответ №3:

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