- PR -

C#のスレッドと非同期ソケット実装方法について

1
投稿者投稿内容
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 2004-04-12 10:27
C#初心者です。
C#の実装方法について質問があります。

@VC++で実装するユーザインターフェイススレッドのようなスレッドの実装方法

 ワーカースレッド的な使用方法をしている例はよく見るのですが、
 ユーザインターフェイススレッドの例は見たことがありません。
 基本的にC#では使用しないということなのでしょうか?
 また、他スレッドにメッセージを送信する方法がわかりません。
 eventキーワードで実装していく?とできるのでしょうか?

A非同期ソケットの実装方法

 MFCのCAsyncSocketクラスのように相手側からの接続や切断情報を受信した結果
 を知る方法がわかりません。
 CAsyncSocketでは、OnConnect、OnCloseなどの関数があったと思いますが...
 同様の関数があるのでしょうか?
 こういう処理は、一般的にどのように実装するのでしょうか?

ご存知の方、いらっしゃいましたら回答をお願いいたします。

以上。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-04-12 12:28
.NETのはなし?MFCのはなし?

.NET frameworkを使用した非同期ソケットのサンプルであれば、

.NET Compact Framework Sample: Signature Capture
が参考になるのではないでしょうか?
.NET Compact Frameworkのサンプルですが、CF専用のAPIを使用しているわけではないので、問題ないと思います。

MFCのことは、わかりません。
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 2004-04-12 17:02
話がややこしくてすみません。
やりたいことは単に、
非同期ソケットで接続し、接続できなければ一定周期後に再接続する。
このとき、BeginConnect実行で、エラーが発生したかどうかチェックするタイミングは
いつが普通なのでしょうか?
この接続失敗のタイミングで、再接続するタイマを設定するのですが、
ソケット側が非同期で動作している都合上、どのタイミングで接続処理成功失敗
の判断をしてよいかわかりません...
ちなみに判断処理はSelect、Poll関数でいいんですよね?

またVCの例のOnCloseなどの関数は、リモートホスト(相手側ソケット)が切断してきた場合に自動で呼ばれ、ソケット側からアプリ側へ自動で通知することができます。
このような仕組みはC#でどのように実装するのか質問したいという意図で
引き合いに出しました。

例に挙げていただいたサンプルですが、難しくてよくわかりませんでした...
1

スキルアップ/キャリアアップ(JOB@IT)