TCP通信(その後)

2013-11-21   C#

TCP通信の後日談です。

やっぱり、大きなデータを一発で送ろうとすることに問題があるのだろうという結論に達したので、一定サイズ以下のパケットに分割して送受信するような仕組みにしました。車輪の再発明的な感じもしますが、仕組みの学習としてはありだろうということで……

さらに、WebSocketもいったんやめて、もとのソケット通信に戻しました。
単純なパケット送受信の仕組みを作って試してみましたが、パケットのサイズ、送受信間隔、同時接続の許容度など色んな条件が絡んであまり効率よくデータがやりとりできなかったのです。速度も結構違います。
WebSocketにしたかったのはブラウザもクライアントにしやすくなるなぁという理由もあったのですが、ちょっと今回のアプリケーションには向いてないかもしれません。

で、これまでのプログラムを整理して、ソケットを使ったパケット送受信の仕組みを作ったら、大きなデータのやりとりについては思ってた以上に安定しました。
ついでに、通信部分とビジネスロジック的なところがこんがらがって密結合になっていたところがきれいに分離できてすっきりしました。
こういう瞬間は、絡まったコードがするっとほどけた感じがして気持ちいいですね。

まだプログラム的にはいまいちなのでもうちょっと練る必要はありますが、とりあえず「通信は焦らず少しずつ」ということで問題の解決にしとこうと思います。