私は通常の方法でのgethostbyname()関数を使用しています...のgethostbyname Win32エラー
iaHost.s_addr = inet_addr(lpServerName);
if (iaHost.s_addr == INADDR_NONE)
{
// Wasn't an IP address string, assume it is a name
lpHostEntry = 0;
lpHostEntry = gethostbyname(lpServerName);
}
は、私のWebサイトにアクセスして情報を返します。変数「lpServerName」には、「google.com」やループバック「127.0.0.1」などの任意のホストを使用できます。
私のシステム:AMD Opteronシステムで動作しているWindows x64またはx32(同じエラーは発生しません)、XAMPPは私のマシン上にあり、デバッグの目的で使用します。
ここに問題があります:ループバックアドレスを使用すると、上のコードは正常に動作します。私が試してみると、コンピュータの外部のWebサイトにアクセスすると、次のようなエラーが表示されます。「test_gethostbyname.exeにWindowsがブレークポイントを引き起こしました。これはヒープの破損によるもので、test_gethostbyname.exeやその他ロードされたDLLのうち、より多くの診断情報が出力されることがあります。プログラム "test_gethostbyname.exe"には、インターネットへのアクセスに適用されるもっと大きなプロジェクトのコード部分しか含まれていません。したがって、私はヒープが私が行ったことによって壊れているとは思わない。私は同じ結果で "getaddrinfo"コマンドを試しました。私は喜んで(UNIXシステムのセグメンテーションフォールト以外の)この問題に関するあらゆる種類の情報をWebで検索しました。
誰でも、このエラーが発生する原因となるこのコマンドの問題を知っていますか?事前に
おかげで、
ジェイ
IPアドレスとドメイン名の両方を試しましたか? – Paxic
はい、無駄です。 – jay