私が解決しようとしている問題は、ネットアプリケーションでio.Readerとio.Writerを使用しています。 。効率のために、私はmemcopysがそれらを暗示するのを避けようとしています。net.PipeでGolang io.Readerの使用
私は、プレイエリア(https://play.golang.org/p/-7YDs1uEc5)にnet.Pipeを使用してテストアプリケーションを作成しました。データソースとシンクは、ネットワーク接続をモデル化するためにnet.Pipe接続のペアを使用して話し、遠端のループバックはデータをすぐに反映させます。
プログラムは、ループバックエージェントが送信されたデータを読み取る限りは取得できますが、接続ロックに書き戻すことがわかります。それは決して完了しません。さらに、シンク内の受信機はいかなるデータも受信しません。
私は、動作しているパスと完全に対称であるため、書き込みを続行できない理由を理解できません。私は双方向ネットワーク接続を使用する他のテストシステムを作成しましたが、bufioとReadStringの使用をやめた直後にこの問題が発生しました。私はそれらのコードを見て、私が逃したものを見ることができません。
ご協力いただきありがとうございます。
ああ、私の愚かなこと。それは常にスライスを空にするように初期化する筋肉の記憶です。ありがとうございました –
ちなみに、 'net.Pipe'によって返された' Conn'の両方が接続されているので 'io.Copy'は必要ありません! [the doc](https://golang.org/pkg/net/#Pipe)に問い合わせて明示的な 'io.Copy'なしでコードを試してみてください... –