
MFCでUDPプロトコルを使ったサーバー・クライアントをソケットプログラムで書いております。
ソフトの内容は、クライアントから送信されたの文字列のコマンドをサーバで処理をするだけです。
サーバー側での受信の仕方は
WSAAsyncSelect()関数を使ってソケットイベントが発生するごとに親ウィンドウに自作のメッセージ(WM_MY_MSG)が送られるように設定する
↓
WM_MY_MSGのメッセージハンドラ内でrecvfrom()関数を使って受信する。
という方法を用いています。クライアント2台ぐらいであれば正常に動きます。
質問1:
まだ試したことはないのですが(というより試す環境がない)、ほぼ同時ぐらいに複数(10台ぐらい)のクライアントからコマンドが送信された場合、それを全部正確に受信できるものなのでしょうか?要するに一つのコマンドを処理中に別のコマンドが送られてきた場合の動作はどうなるのでしょうか?
質問2:
UDP通信での受信をする場合の何かもっとスタンダードな方法があるのでしょうか?
よろしくお願いします。
No.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 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトで表示が多...
-
コマンドプロンプトが実行中か...
-
ttlで戻り値を取得する方法
-
コマンドキーがないんですけど...
-
Tera Term Proに関する質問です。
-
makeコマンドのエラー
-
Teraterm macro
-
テキストボックスが未入力のと...
-
viの行削除コマンドを教えて下...
-
DOSコマンドでポートから受信
-
バッチファイルでキー操作を行う。
-
VBユーザーフォームで時間入力
-
vbsによるユーザ情報の取得につ...
-
コマンドプロンプトですべてのU...
-
ローマ字入力で「トゥ」を入力...
-
1点の辻の字に変換したいがエク...
-
word の文字入力 文字が青色に...
-
送信エラー時、レポートメール...
-
ACCESS VBA でのエラー解決の根...
-
Excelでエラー(#N/Aなど)値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
ttlで戻り値を取得する方法
-
Tera Term Proに関する質問です。
-
バッチファイルでキー操作を行う。
-
別のユーザーフォームのコマン...
-
コマンドキーがないんですけど...
-
【Teratermマクロ】文字列の一...
-
VBユーザーフォームで時間入力
-
mountのDOSコマンド
-
文字の点滅はどうやるのですか?
-
DOSコマンドでポートから受信
-
RTX1100の削除コマンド
-
EEPROMのデータの初期化について
-
VBでDosコマンドを動かすには
-
makeコマンドのエラー
-
コマンドプロンプトですべてのU...
-
デフォルトのショートカットキ...
-
ディスクの空き容量を取得する...
-
JP1起動バッチについて
おすすめ情報