DXライブラリの通信

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
とんとん
記事: 33
登録日時: 3年前
連絡を取る:

DXライブラリの通信

#1

投稿記事 by とんとん » 3年前

自分1台のPCでどう確かめたらよいか分からなかったので質問させていただきます。

DXライブラリの通信、NetWorkRecvUDPは1フレームで1回実行するのなら、
受信するべきデータが複数あってもデータの受信は1フレームに1回しか行わないのでしょうか。
それとも受信するべきデータがなくなるまで受信するのでしょうか。

あと、1台のPCで通信関連のプログラムのテストをする方法があるなら教えていただけるとありがたいです。
宜しくお願いします。

アバター
みけCAT
記事: 6192
登録日時: 8年前
住所: 千葉県
連絡を取る:

Re: DXライブラリの通信

#2

投稿記事 by みけCAT » 3年前

とんとん さんが書きました:DXライブラリの通信、NetWorkRecvUDPは1フレームで1回実行するのなら、
受信するべきデータが複数あってもデータの受信は1フレームに1回しか行わないのでしょうか。
それとも受信するべきデータがなくなるまで受信するのでしょうか。
あくまで予想ですが、受信するべきデータまたは受信バッファの容量がなくなるまで受信すると思います。
なぜなら、NetWorkRecvUDP関数のリファレンスを見ると、
関数が成功すると通常受信データは受信データキューから削除されますが、 引数 Peek を TRUE にすると受信データがキューにそのまま残ります。 この場合、次に NetWorkRecvUDP を呼んだ場合も前回と同じデータを取得することになります。
という記述があります。
受信データキューがあるということは、NetWorkRecvUDP関数が実行される間に複数のデータを受信できることを示唆していそうです。
また、DXライブラリ 3.15cのDxNetwork.cppを見ると、Winsockの関数をメッセージを利用しながら利用する実装になっているため、
他のWindowsアプリケーションと同様に受信するでしょう。
とんとん さんが書きました:あと、1台のPCで通信関連のプログラムのテストをする方法があるなら教えていただけるとありがたいです。
宜しくお願いします。
単純なものなら、127.0.0.1や仮想マシンを利用するといいでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

とんとん
記事: 33
登録日時: 3年前
連絡を取る:

Re: DXライブラリの通信

#3

投稿記事 by とんとん » 3年前

ふむふむ。ありがとうございます。仮想マシンのことはすっかり抜けていました。ありがとうございます。
しっかりライブラリのページを読むべきでした。ごめんなさい。
教えてくださってありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る