Я не получаю простой пример потока в виде сказуса, который читается из TCP и записывается в std.
val src = tcp.reads(1024)
val addr = new InetSocketAddress(12345)
val p = tcp.server(addr, concurrentRequests = 1) {
src ++ tcp.lift(io.stdOutLines)
}
p.run.run
Он просто сидит там, ничего не печатает.
Я также пробовал различные механизмы, используя to
, всегда с заклинанием tcp.lift
, чтобы получить Process[Connection, A]
, включая
tcp.server(addr, concurrentRequests = 1)(src) map (_ to tcp.lift(io.stdOutLines))
который даже не компилируется.
Нужно ли мне wye
передавать исходные и печатные потоки? Пример, который я нашел в исходном запросе на вытягивание для tcp
замены nio
, как представляется, указывает это, но wye
больше не существует на Process
, поэтому, к сожалению, царит путаница.
Изменить. Оказывается, помимо проблем типа, описанных Павлом, вам также нужно запустить внутренние процессы "вручную", например, выполнив p.map(_.run.run).run.run
. Я не думаю, что идиоматический способ сделать это, но он работает.