楽なんだか面倒なんだか良く分からん

修士論文では、通信を利用したアプリケーションを作成しつつ色々実験する為、今更ながら^^; C# でチャットを作ってみたわけですよ。

……なんだろうね、コレ(何

マルチスレッドにして、TcpListener と TcpClient を利用して通信していますが、TcpClient::Read を呼んでデータを読むところまでは良いものの、Readで待機しちゃうものだから、待機中にアプリケーションの通知を送ろうにも送れない。

サーバー・クライアント共に TcpClient::Read で、互いに 相手の TcpClient::Close が呼ばれて Read() の戻り値が 0 になるのを待っている。 ……デッドロックやんコレ!! orz

非同期メソッドを使ってごにょごにょするようなコードに書き換えるべきなのだろうか…うむむ。 通信系のコード書く場合のセオリーってのは知らんので良くわからねぇ…。