Именованные каналы получить гораздо сложнее, чем использовать сокеты. Концептуально они проще. Однако сделать их надежными и разумно отказоустойчивыми гораздо сложнее, чем для розеток.
Я бы посоветовал вам пересмотреть сокеты, они предназначены для связи между процессами. Можете ли вы уточнить, почему вы не можете использовать сокеты? Причина, по которой я спрашиваю, состоит в том, что именованные каналы в действительности использовали сокеты поверх loopback.
Именованный канал - это конструкция ОС. Вы можете создать именованный канал в вашей ОС, а затем получить к нему доступ, как если бы это был файл Java, C или любой другой программы. Связь между процессами через файл очень трудно понять правильно (если не невозможно). Например, вы не будете знать, что когда вы пишете в именованный канал, что-либо читает его, если вы не разработаете свой собственный протокол управления потоком. (Очень сложно проверить во всех случаях)
Возможно, вы слышали о PipedInputStream и PipedOutputStream, и эти классы могут использоваться только в одном процессе (что делает их довольно бесполезными)
РЕДАКТИРОВАТЬ: Если вам нужен независимый вид наиболее распространенного и, возможно, наиболее разумного способа отправки данных, я предлагаю вам попробовать Google.
java sockets - 2,210,000 hits
java named pipes - 90,000 hits
Так что, возможно, сокеты в 25 раз более разумны, чем именованные каналы. (и более поддерживаемым, так как есть больше учебных пособий и людей, которые имеют опыт работы с ними)