10

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はこれを示しているように見えましたがwyeProcess.


編集すると、Paul によって説明された型の問題に加えて、内部プロセスを「手動で」実行する必要があることがわかりましたp.map(_.run.run).run.run。これが慣用的な方法だとは思いませんが、うまくいきます。

4

1 に答える 1