忍者ブログ
暇人おやじの暇なつぶやき
[73] [72] [71] [70] [69] [68] [67] [66] [65] [64] [63]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

■非同期ソケット概要

ソケット通信を行う際の注意点
相手からのデータを待つ際、ブロックしていまう

ブロックとは?これは「待ち」が発生する事を意味する
この待ちがあると、プログラムは他のことが出来なくなる

そこで、非同期に行なうことで、このブロックを発生させなくするのだ
非同期のために、.NETではIAsyncResultデザインが用意されているという

非同期のソケットについては
http://msdn.microsoft.com/ja-jp/library/fx6588te(VS.80).aspx
にサンプルが乗っている
このサンプルにはクライアント、サーバーとあり、少しの修正で動くので非常に参考になるかと思う

ただし、BeginReceive等に受け渡すオブジェクトを独自にクラスで用意しているので、これらをsocket渡しにした簡単なものがあれば、もう少し理解しやすいと思う

また前回の切断を感知する方法を非同期受信と絡める場合には、スレッドの同期取り等の処理が発生する

これはManualResetEvent型を定義することでスレッドの制御をプログラム内で行なえる

複数ソケットの受け入れには、アクセプト処理やコネクト処理を早々に終わらせないとならない点も注意しなければならない
PR


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索