相手からの接続を待ち、接続が来たら受信処理をスレッドとして起動し、通信を行うサーバー型のプログラムを作成しております。
このプログラムを実行していると次のような事象がありました。
- 2つの接続があり、受信処理がそれぞれ起動、通信を行っている。
- ある時、受信したデータ長と電文中のデータ長が異なる電文を受信した。
- 受信したデータを処理中にプログラムが異常終了した。
このプログラムは、1つの接続で通信を行うことを想定しています(2つの接続があったのは、想定外です)。
受信データを受け取る変数をメンバ変数として確保しています。サイズは、4096バイト(byteの配列)です。
お教えいただきたいのは、改善方法としてスレッドとして実行するメソッドで領域確保するのは、妥当でしょうか?
C言語の感覚から抜けきれないため、サイズの大きな変数をどのように確保するのが良いかが今一つ分からないです。
OS: Windows7 Pro.
言語: C# (Visual Studio 2005)
回答1件
あなたの回答
tips
プレビュー