2017-04-01 14 views
0

注:私はC++についてよく分かりません。 私は(000webhost.com)をホストしているサイトを使用していますが、ポストリクエストでデータを受け取るように設計されたPHPスクリプトがあります。私が現在使用しているコードで、私が望むものではない、000webhostのホストを取得します。私はURL(SomeName.000webhostapp.com)を使いたいのですが、ホストにリダイレクトしています。ここ はコードです:特定のURLでソケットを開くにはどうすればよいですか?

SOCKET Socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 
SOCKADDR_IN SockAddr; 
SockAddr.sin_port = htons(80); 
SockAddr.sin_family = AF_INET; 
SockAddr.sin_addr.s_addr = *((unsigned long*)gethostbyname("SomeName.000webhost.com")->h_addr); 

が提供される任意の助けてくれてありがとう。

+1

もし 'php'スクリプトに接続しているのなら、' HTTP'ウェブサーバーの後ろにある可能性が高いので、 'HTTP'プロトコルを話す必要があります。ソケットは*ホスト*への接続だけを扱う 'URL'について気にしません。残りの 'URL'は、ソケットが接続された後に' HTTP'プロトコルの一部として提供されます。 – Galik

+0

私はそれを知っていますが、それは** **前のURLです。どうすればいい? – Internal

答えて

3

ソケットはURLに接続せず、ホストとポートに接続します。残りのURL(パス部分)は、接続後にソケットをHTTPリクエストで送信するものです。

"SomeName.000webhostapp.com"を検索しようとしているようですが、 "000webhost.com"というIPアドレスを取得しているようです。それは驚くべきことではありません。プロバイダがname-based virtual hostingを使用している可能性があります。すべてのサブドメインは、単一のIPアドレス上の単一のサーバーによって実際に処理されます。

HTTPリクエストを送信するときは、HTTP 1.1プロトコルの必要に応じて、Host: SomeName.000webhostapp.comヘッダーを含める必要があります。そのヘッダーに基づいて、サーバーは応答するサイトを認識します。

関連する問題