TCP から読み取り、標準出力に書き込む単純な scalaz-stream の例を実行できません。
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
.
編集すると、Paul によって説明された型の問題に加えて、内部プロセスを「手動で」実行する必要があることがわかりましたp.map(_.run.run).run.run
。これが慣用的な方法だとは思いませんが、うまくいきます。