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

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

■BeginAccept で複数のクライアントと接続を試みる

socket通信でサーバープログラムを書く場合、サーバーになるためには複数の接続先からの接続要求に
応えないとならない

.NETには「TcpListener」などの受信を行なうためのクラスが用意されているが、単純にこれを使った場合には
複数からの接続に対応は出来ない

そこで、socketクラスのBeginAcceptを実装することで、複数の接続から対応するコードを書く

しかしこれには「Callback」関数を定義しなければならない、また.NETでのコールバックはデリゲートで
なんたらかんたら・・・という説明が色々出てきて、ハッキリ言おう、よく分からん

でだ
http://codezine.jp/article/detail/22?p=1 にあるサーバーのプログラムというコードと
http://msdn.microsoft.com/ja-jp/library/5bb431f9.aspx にある例を見つつ

どうにかこれらcallbackの動きを把握できた

通常の接続待ちではブロックされるため、socket.accept()命令でプログラムは待機する

しかし、BeginAcceptを使った場合、待機は別スレッドが行い、本体は次のコードを実行する
なので、socket.accept()のコードを単純にBeginAcceptに変更しただけではまったく意味がないのでR


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:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索