HTMLサーバについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
コンタ:C言語勉強中

HTMLサーバについて

#1

投稿記事 by コンタ:C言語勉強中 » 14年前

はじめまして。

自宅学習でHTMLサーバを作成しています。
開発環境VC++2008で言語はCです。
WinSockでHTTP通信を行うプログラムを作成していますが、詰まってしまったのでご相談させて
頂きたく質問させていただきます。

現在、参考書を参考にソースを作成していますが、HTTPレスポンスで”HTTP/1.1 400 Bad Request”
とステータスコードが返ってきてしまいます。この理由がわかりません。
期待するステータスコードは、200 OKです。
※プロキシ サーバーを経由する場合は外部のサーバーには接続できないそうですが、自宅からインターネット※に接続するユーザーはプロキシ サーバーは使用しないので関係ないと思うのですが。。。

また、動作環境として、サーバ名、ポート番号、URLを(Cドライブの)設定ファイルから読み込むようなプログラムへ改良したいのですが、 実現方法が分かりませんので、ヒントを教えていただきたいです。
仕様としては、HTTPサーバのみ立ち上げて、要求されたファイルを送信するだけのものを考えています。
現在のプログラムを添付もします。

すいませんが、よろしくお願いします。

コンタ:C言語勉強中

Re:HTMLサーバについて

#2

投稿記事 by コンタ:C言語勉強中 » 14年前

デバッグしていたら、GETリクエスト送信処理のsend()に渡すリクエスト行で文字列コピーが出来ておらず、
"%s"のまま渡していました。下記の様に修正することでステータスコードが200 OKで返ることが出来ました。
◆修正前
wsprintf(szStr, "GET %s HTTP/1.1\r\n\r\n", szURL);
◆修正後
sprintf(szStr, "GET %s HTTP/1.1\r\n\r\n", szURL);

しかし、wsprintf()で"%s"が変換されない理由が分かりません。
環境のせいなのでしょうか??

mila

Re:HTMLサーバについて

#3

投稿記事 by mila » 14年前

おそらくプロジェクトの文字セットの設定が
Unicode文字セットになっているためでしょう。
マルチバイト文字セットに変更して試してみてください。

閉鎖

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