Связь между процессами является простым способом использования вывода первого процесса в качестве ввода для других процессов. Такой же концепт можно реализовать в Go, к примеру, чтобы связать данные из одного сокета с другим сокетом, создавая связь через туннель. В данной инструкции показано, как создать туннель с помощью использование встроенной библиотеки от Go.

Как создать туннель между процессами записи и чтения в Go?

1. Создайте файл pipe.go со следующим содержимым:

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

2. Запустите код через go run pipe.go;
3. Посмотрите на результат в терминале:

Как работает созданный туннель из io.Pipe()

Функция io.Pipe() создает туннель внутренней памяти и возвращает оба конца туннеля, с одной стороны PipeReader и с другой стороны PipeWriter. Каждый процесс записи в PipeWriter блокируется, пока он не поглощается процессом чтения на другом конце.

Понравилась статья?

Поддержи наш проект, чтобы мы могли создать больше хорошего контента!