Приятной особенностью именованных каналов в Windows является то, что они уже работают в сети, просто указав имя сервера в:
CreateFile("\\ServerName\pipe\PipeName", ...
Однако, если это не соответствует вашим потребностям, вам просто нужно создать цикл чтения (я предлагаю OVERLAPPED I / O), который при каждом чтении из канала записывает полученные данные в сокет.