C#で非同期のソケット通信

これまで大体ソケット通信は同期処理でやってたんだけど、非同期でのソケット通信がしたくなったのでまとめてみた。とはいえ、前回のTouchenceのサンプルで使っている部分を切り出した感じ。

スポンサーリンク

ソースコードはGitHubに上げてるけど、メインのソースもコピペしてみた。サーバ開始時はStartListeningして、終了時はStopListeningしてる。ReadCallbackでStart/Stopのコマンドが来たら文字列送信を開始するフラグを立てて、SendMessageThreadの中で接続ごとにフラグをチェックして文字列送信をしてる。

接続してきたクライアントにデータを垂れ流しながら、何かコマンドを受け取ったらそのデータの形式を変えたり送受信そのものを止めたりするって言うのが出来ると思うんだけど、他の人たちはどうやってるのかな。送信を別スレッド(SendMessageThread)で回しているのは、ちょっとだけ気持ち悪いんだけど・・・

スポンサーリンク


スポンサーリンク

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です