3

Этот вопрос как-то связан с https://superuser.com/questions/270698/how-is-it-called-when-listeningconnecting-two-sockets-and-exchangeing-data-betw

В тестовой настройке у меня открыто три окна терминала, в которые я запускаю

Term1: "nc -l 55545"
Term2: "nc -l 55546"
Term3: "socat tcp:localhost:55545 tcp:localhost:55546"

Вход в Term1 теперь появляется в Term2, а вход в Term2 появляется в Term1.

Это желаемое поведение. Как я могу добиться такого поведения, используя только nc?

Когда я бегу в

Term3: "nc localhost 55545 | nc localhost 55546"

затем ввод в Term1 появляется в Term2, а ввод в Term2 появляется в Term3. Как я могу сделать трубу двунаправленной? По возможности без временных файлов.

1 ответ1

11

Это прямо со страницы Википедии на Netcat. В Term3 вы бы запустили:

mkfifo backpipe
nc localhost 55545 0<backpipe | nc localhost 55546 1>backpipe

Это делает именно то, что вы хотите. Он использует FIFO, чтобы получить вывод с левой стороны обратно в правую. Строго говоря, это не временный файл - FIFO - это именованный канал между двумя процессами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .