メッセージの監視

[戻る]
koko 2006/05/23(火) 14:17:08
環境は、WindowsXPと、.net2003,MFC未使用で、メッセンジャーを作ってます。
 TCPで、クライアントで送ったメッセージを、サーバーが受信したことを監視するプロ
グラムを作りたいと思うのですが、方法がわかりません。
一応、
サーバーに送られてきたメッセージを、Time関数を使って監視
 しかし、サーバーで、どのようにしてメッセージがどの時点でくるかが不明
 recvだともう受信されている状態。listenだと待機モードの指定だけだし・・・
いったいどのようなことをすればいいのか、わからなくなってしまいました。

なにとぞ、ご教授をお願いします。

επιστημη 2006/05/23(火) 14:32:12
Windows-socketであれば WSAAsyncSelect-APIによって
「なんか受信したらメッセージを発行」してくれます。

でじゃぶ 2006/05/23(火) 14:34:55
なんだこれ?
同じ質問が、まえにもあったな。デジャブかな?

koko 2006/05/23(火) 14:42:51
早い返答ありがとうございます
>なんか受信したらメッセージを発行
とありますが、
recv(・・・)したあとに
messageBox(”届いています”)
というような感じでしょうか?
それともまったく別の方法でしょうか?

επιστημη 2006/05/23(火) 14:51:04
# きっとデジャブでしょう

>>なんか受信したらメッセージを発行
> とありますが、
> recv(・・・)したあとに
> messageBox(”届いています”)
> というような感じでしょうか?

違います。WSAAsyncSelect-APIによって
「なんか受信したらメッセージ頂戴ね」
とWindowsにお願いしておくことができます。
あとはそのメッセージを受け取ったタイミングでrecvすればいい。

Windowsのメッセージ駆動メカニズムについて勉強すべし。

Ban 2006/05/23(火) 15:24:27
> # きっとデジャブでしょう
# 非MFCだったり、「監視」だったりしますし。

> TCPで、クライアントで送ったメッセージを、サーバーが受信したことを監視する
> プログラムを作りたいと思うのですが、方法がわかりません。
> 一応、サーバーに送られてきたメッセージを、Time関数を使って監視

確認ですが、「受信するアプリ」とは別のプロセスで監視したいと言ってますか?
# 監視という言葉はこれを求めているように取れなくもない。
もしくは、同じプロセスでrecvより前に通知が欲しいということですか。
またこの場合、ブロッキングして欲しくないということですか。
ブロッキングしてもいいなら、実際にrecvしてしまうのがおそらく一番シンプルです。
シングルスレッドなりでブロッキングして欲しくないなら、
既に提示の WSAAsyncSelect だと思いますが。

瀬戸っぷ [E-Mail] 2006/05/24(水) 00:19:38
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2169785

こちらも参考にどうぞ。

# openSSL+Winsockでノンブロッキングモードでプログラムしてますが…
# 途中からメッセージ飛んでこなくなるっす(T_T)

でじゃぶ 2006/05/24(水) 00:34:47
> メッセージの監視
> koko 2006/05/23(火) 14:17:08

> メッセージの監視
> 質問者:choc0 06-05-23 14:58

∴koko == choc0

> ブロードキャストを使った相手先に特定について教えてください 
> cho0 2006/05/11(木) 11:41:56
> yuu 2006/05/12(金) 09:31:22
> cho1 2006/05/12(金) 20:39:43

∴cho0 == yuu == cho1

> リストボックスに文字をいれる
> yuu 2006/05/11(木) 19:31:35

> コントロールボタンを見えなくする
> koko 2006/05/18(木) 14:06:44

以上より koko ≒ cho0
やっぱデジャブじゃねぇ。2回おんなじこと聞いている。解決したんじゃねぇの?

> ブロードキャストを使った相手先に特定について教えてください > メッセージの監視

ななし 2006/05/24(水) 01:20:23
#そういうのはラウンジでどうぞ

古いスレッドには追加発言できません。