netcat как сервер мультипотока

Я использую netcat для выполнения простого сервера как это:

while true; do nc -l -p 2468 -e ./my_exe; done

Таким образом, любой может соединиться с моим хостом на порте 2468 и разговор с "my_exe".
К сожалению, если бы кто-то еще хочет соединиться во время открытого заседания, это добралось бы, "Соединение отказалось" от ошибки, потому что netcat больше не находится в слушании до следующего "в то время как" цикл.

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

12
задан 08.09.2013, 02:45

2 ответа

Вы используете неправильный инструмент для задачи: используйте что-то как ucspi-tcp, особенно tcpserver:

tcpserver waits for incoming connections and, for each connection, 
runs a program of your choice.
18
ответ дан 07.12.2019, 11:55

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

Если Ваша система выполняет xinetd (или его предшественник inetd), можно использовать то программное обеспечение, чтобы прислушаться к соединению на порте по Вашему выбору и выполнить исполняемый файл для ответа. С xinetd/inetd у Вас есть опция разрешения нескольких параллельных соединений, каждый подаваемый отдельным экземпляром Вашего исполняемого файла.

3
ответ дан 07.12.2019, 11:55

Теги

Похожие вопросы