Именованные трубы сами по себе не могут выполнить это через IP. Самое простое решение состоит в том, что вы создаете именованный канал на каждой машине и используете netcat (nc
в Linux) для отправки информации между трубами.
Я не знаю, как это работает в Windows, но я могу привести пример, сделать это в Linux (точнее, любой современный Unix), и, вероятно, некоторые простой способ сделать адаптировать это для Windows:
machinea
хочет поговорить с machineb
. A открывает именованный канал в /tmp/mypipe
, который записывает какая-то программа. B открывает именованный канал в /tmp/mypipe
, о котором читает какая-то программа. B запускает nc -l 9000 > /tmp/mypipe
для прослушивания соединений TCP/IP на порте 9000 и записи вывода в именованный канал. A запускает cat /tmp/mypipe | nc machineb 9000
для чтения из своего именованного канала и передает данные чтения netcat, чтобы отправить его на машину B. Конечно, программы, запущенные на A и B, не «заботятся» о том, идет ли информация о канале через TCP/IP; netcat обрабатывает это, и они просто разговаривают с их именованными каналами, однако они должны это делать.
Возможно, вам придется поиграть с порядком, в котором вы открываете именованные каналы, открывать программы, которые читают/записывают в/из них, и запускать команды netcat. Я отвечаю на это по памяти.
Именованные трубы редко используются для межмашинной связи, почему вы используете их вместо TCP? –
Я как раз в процессе обучения больше о трубах. Windows позволяет использовать каналы между компьютерами Windows в той же локальной сети. Является ли TCP лучше подходит для межмашинных комм? – mcu