環境は、WindowsXPと、.net2003,MFC未使用で、メッセンジャーを作ってます。
TCPで、クライアントで送ったメッセージを、サーバーが受信したことを監視するプロ
グラムを作りたいと思うのですが、方法がわかりません。
一応、
サーバーに送られてきたメッセージを、Time関数を使って監視
しかし、サーバーで、どのようにしてメッセージがどの時点でくるかが不明
recvだともう受信されている状態。listenだと待機モードの指定だけだし・・・
いったいどのようなことをすればいいのか、わからなくなってしまいました。
なにとぞ、ご教授をお願いします。
Windows-socketであれば WSAAsyncSelect-APIによって
「なんか受信したらメッセージを発行」してくれます。
なんだこれ?
同じ質問が、まえにもあったな。デジャブかな?
早い返答ありがとうございます
>なんか受信したらメッセージを発行
とありますが、
recv(・・・)したあとに
messageBox(”届いています”)
というような感じでしょうか?
それともまったく別の方法でしょうか?
# きっとデジャブでしょう
>>なんか受信したらメッセージを発行
> とありますが、
> recv(・・・)したあとに
> messageBox(”届いています”)
> というような感じでしょうか?
違います。WSAAsyncSelect-APIによって
「なんか受信したらメッセージ頂戴ね」
とWindowsにお願いしておくことができます。
あとはそのメッセージを受け取ったタイミングでrecvすればいい。
Windowsのメッセージ駆動メカニズムについて勉強すべし。
> # きっとデジャブでしょう
# 非MFCだったり、「監視」だったりしますし。
> TCPで、クライアントで送ったメッセージを、サーバーが受信したことを監視する
> プログラムを作りたいと思うのですが、方法がわかりません。
> 一応、サーバーに送られてきたメッセージを、Time関数を使って監視
確認ですが、「受信するアプリ」とは別のプロセスで監視したいと言ってますか?
# 監視という言葉はこれを求めているように取れなくもない。
もしくは、同じプロセスでrecvより前に通知が欲しいということですか。
またこの場合、ブロッキングして欲しくないということですか。
ブロッキングしてもいいなら、実際にrecvしてしまうのがおそらく一番シンプルです。
シングルスレッドなりでブロッキングして欲しくないなら、
既に提示の WSAAsyncSelect だと思いますが。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2169785
こちらも参考にどうぞ。
# openSSL+Winsockでノンブロッキングモードでプログラムしてますが…
# 途中からメッセージ飛んでこなくなるっす(T_T)
> メッセージの監視
> 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回おんなじこと聞いている。解決したんじゃねぇの?
> ブロードキャストを使った相手先に特定について教えてください
と
> メッセージの監視
#そういうのはラウンジでどうぞ