アプリ版:「スタンプのみでお礼する」機能のリリースについて

MFCでUDPプロトコルを使ったサーバー・クライアントをソケットプログラムで書いております。

ソフトの内容は、クライアントから送信されたの文字列のコマンドをサーバで処理をするだけです。

サーバー側での受信の仕方は
WSAAsyncSelect()関数を使ってソケットイベントが発生するごとに親ウィンドウに自作のメッセージ(WM_MY_MSG)が送られるように設定する



WM_MY_MSGのメッセージハンドラ内でrecvfrom()関数を使って受信する。

という方法を用いています。クライアント2台ぐらいであれば正常に動きます。


質問1:
まだ試したことはないのですが(というより試す環境がない)、ほぼ同時ぐらいに複数(10台ぐらい)のクライアントからコマンドが送信された場合、それを全部正確に受信できるものなのでしょうか?要するに一つのコマンドを処理中に別のコマンドが送られてきた場合の動作はどうなるのでしょうか?

質問2:
UDP通信での受信をする場合の何かもっとスタンダードな方法があるのでしょうか?

よろしくお願いします。

A 回答 (1件)

普段はMFCのSocketではなく


Winsockを使っていますが基本は同じだと思いますので参考までにコメント致します。

質問1:
同時に複数のクライアントからUDPパケットが送信された場合、
データはまず受信側のSocketのキューに格納されます。
なので1つのコマンドを処理中に別の(次の)コマンドを受信しても問題ありません。キューに格納されます。
シーケンシャルにキュー内からコマンドを取り出し終えるまで同じ処理を続ければ良いかと。

質問2:
MFCのSocketは古いVersionのSocketで、
困った記憶があります。v1.1?
(最新情報ではないかもです)
Winsockに関する良い書籍が出てますので
そちらを直接利用されてはどうでしょうか?
http://bookweb.kinokuniya.co.jp/htm/4797306882.h …

UDPはコネクションレスですし、難しいことはないと思います。

参考URL:http://bookweb.kinokuniya.co.jp/htm/4797306882.h …
    • good
    • 0
この回答へのお礼

返信送れてすいません。
どうもありがとうございます。
キューに格納されるなら問題なさそうですね。
見通しが立ちました。

お礼日時:2004/09/17 22:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!