トップページ > 過去ログ > 記事閲覧
DXライブラリのネットワーク通信
名前:よこたん(sogoh) 日時: 2011/02/12 20:22

 DXライブラリのネットワーク通信は、送信したいデータをそのまま送信するのではなく、先頭になにかコマンドを付加しているのでしょうか?  WebサーバーにNetWorkSend()を使ってリクエストを送信してみたのですが、応答が受信できないので、WireSharkでTCPのデータを見ると、Bad Requestの返事が返ってきており、送信データの先頭には、コマンドらしきデータが4バイトほど挿入されているのを確認しました。  GetHostIPbyName()をコールした時点でWSAStartup()もコールされるようですので、以降は、アプリ側で直接ソケットをつくって、普通にwinsockの関数を使おうかと考えているのですが、それで問題ないでしょうか?特に既知の問題がないようでしたら、このまま進めてみようと思います。 よろしくお願いします。

Page: 1 |

Re: DXライブラリのネットワーク通信 ( No.1 )
名前:管理人 日時:2011/02/13 19:18

DXライブラリでは NetWorkSend を行った際に先頭に NetWorkSend で送信したデータのサイズを 送信するデータの先頭に4バイト使って付けています ( TCP の場合 recv で受け取れるデータが、NetWorkSend した際にどんなサイズだったのかを判断する材料が無いので ) SetUseDXNetWorkProtocol( FALSE ); ↑これを実行することでその処理を行わず NetWorkSend で指定されたデータがそのまま send されるようになります > GetHostIPbyName()をコールした時点でWSAStartup()もコールされるようですので、以降は、 > アプリ側で直接ソケットをつくって、普通にwinsockの関数を使おうかと考えているのですが、 > それで問題ないでしょうか?特に既知の問題がないようでしたら、このまま進めてみようと思います。 はい、問題ありません ネットワーク通信の機能は他の機能に何も干渉していませんので、 独自でネットワーク通信処理をしていただいてもDXライブラリの動作に支障はありません
Re: DXライブラリのネットワーク通信 ( No.2 )
名前:よこたん(sogoh)/解決済 日時:2011/02/14 11:19

管理人様、  ご回答ありがとうございます。今回は、外部のネットに接続させる構成で、タイムアウトとか細かい ところの微調整が必要になりそうですので、独自のネットワーク通信処理で進めることにします。

Page: 1 |