私のコードは複雑ではありませんが、単純に言えば複数のgoルーチンを持っていて、すべて異なるtcpサーバーをダイヤルして、読み取り可能なメッセージがストリーム上に存在します。ここまでは順調ですね。今、「クライアント」の前の束を管理し、ユーザーが望むときにそれらを閉じるルーチンがあります。そのために、私はそれぞれの「conn」を適切なルーチンのクライアントに関連付け、それを閉じています。conn.readは他のgoルーチン経由でconnを閉じると無限ループになる
私が直面している問題は、connオブジェクトのclose関数を呼び出すとすぐに、対応するRead関数が無限ループ内で空の文字列を連続的に読み取ることになります。
私は複数での接続がhttps://play.golang.org/p/wq7zt9Kqz7
TL routines-行く取り扱いしています方法に似ている単純なコードを書きました。要するにDR
私は1つを表し、「クラス」を持っていますリモートサーバのアドレス、conn、waitgroupが入っています。私は複数のインスタンスを作成し、別々のgoルーチンで入力を処理しています。そして、もう1つのルーチンでは、これらのインスタンスの1つを閉じようとしています。このread()は無期限にループします。
私はサンプルコードがそれについて何も言わないので、私は質問しています。また、サンプルコードはサブルーチンを正しく終了しているかどうかを記録しません。 – Fallen