問題タブ [gethostbyname]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - gethostbyname はスレッドを作成しますか?
私は VS2008 と Win7 で C++ を使用しています。
プログラムを調べているときに、作成されたスレッドを追跡していたところ、gethostbyname() がそれ自体でスレッドを作成しているようです。理由を説明していただけますか?
msdn では、「gethostbyname 関数によって返される hostent 構造体のメモリは、スレッド ローカル ストレージから Winsock DLL によって内部的に割り当てられます。」
このメモリは、Visual Studio をだましてスレッドだと思い込ませますか?
編集:このリンクから、また私の観察から、これは Connect 関数でも発生するようです。これは正常な動作だと思います。
以下のコードは msdn [gethostbyname ページ] からのもので、同じ動作を示します。
python - Pythonのurllib2にはgethostbyname関数がありますか?
次のようなurllib2を使用して、要求されたホストのIPアドレスを取得する必要があります。
のような機能はありますip = urllib2.gethostbyname(req)
か?
c++ - C++のWindowsおよびLinuxで単一のDNSキャッシュエントリをプログラムでクリアする
WindowsとLinuxの両方で単一のDNSキャッシュエントリをプログラムでクリアする方法があるかどうか疑問に思っています。または、gethostbyname呼び出しにローカルキャッシュを使用しないように強制する他の方法がある場合。
キャッシュ全体をクリアすることは理想的ではありません。
ありがとう。
macos - gethostbynameがフリーズし、Mac OS Xで100%CPUを使用します
いくつかのソケットを開いてリッスンして送信するプログラムがあります。gethostbyname
これまでのところ、プログラムが完全にフリーズするMacOSXでのみ非常に奇妙な状態を発見しました。
まず、私はスレッドを使用していません。次に、この問題は、テストプログラムの2つのコピーを同時に実行した場合にのみ発生します。
最初のインスタンスは4つの送信ソケットと4つの受信ソケットを作成し、次にそれらは相互にトラフィックの送信を開始します。メッセージングに使用しているネットワークライブラリでgethostbyname()
は、受信ポートが開いた直後に呼び出されます。テストプログラムの2番目のインスタンスを開始したとき、3つのレシーバーを開いた後、最後のレシーバーがそこに留まっていることがわかりました。
問題をへの呼び出しに絞り込みましたがgethostbyname
、これは一見決して戻りません。(この時点までのすべての呼び出しで正常に機能したことに注意してくださいgethostbyname
。)また、この時点に達すると、に無限ループがあるかのように、テストプログラムのCPU使用率が突然100%に跳ね上がりますgethostbyname
。さらに、プロセスをCtrl-Cで実行できません。別の端末から、プロセスを強制終了する必要があります。
明らかに、この動作は、8つの送信者/受信者のペアを開始するというこの極端な場合にのみ発生する場合でも、許容できません。(1回のプロセスで4回、別のプロセスで4回。)これを以前に見た人はいますか?どうすれば回避できますか?
ちなみに、テストされた他のプラットフォームはLinux(Ubuntu 10.04)だけで、問題なく動作します。
objective-c - gethostbyname xcode の問題
やあみんな、私はこのことに慣れていませんが、gethostname() を使用して xcode と ipad を使用しようとしています。いくつか試してみましたが、どれもフリーズするようです。
だから私がやるとき:
それはうまくいきます。ただし、プログラム内からウェブサイトを変更できるようにしたいと思います。
私はもう試した:
と
彼らは警告を思いついた: 互換性のないポインター型から 'gethostbyname' の引数 1 を渡すか、警告をまったく出さない。それでもアプリがフリーズするたびに。助けてください。
android - gethostbynameがエラー111で失敗する(ECONNREFUSED)
デバイスにはネットワーク接続(WiFiおよび3G)があります。
gethostbyname()を呼び出すと、errno 111(ECONNREFUSED)でNULLが返されます。
同じ呼び出しがosxとwindowsで正常に機能します。
何が問題なのですか?
一番、
c - Cでの奇数文字列の問題
gethostbyname()関数を使用するコードを書いています。この関数では、ホストを検索しようとしているホストの文字列を渡す必要があります。現在、文字列を文字の配列で宣言しており、最後にnullバイトがあるため、文字列と見なされます。
私がこのようなprintfを実行するprintf("\n%s\n",hostName);
と、コードは正しく印刷され、次のようになります。facebook.com
ただし、次のように文字列を印刷しようとすると、何らかの理由でprintf("\n%sX\n",hostName);
出力が表示されます。Xacebook.com
Xが私の文字列の最初の文字を上書きする理由を誰かが知っていますか?「facebook.comX」のように印刷するべきだと思います。
c - gethostbyname の結果をキャッシュするにはどうすればよいですか?
プロキシ サーバーがドメイン名の解決に多くの時間を費やしていますgethostbyname
。結果をキャッシュする方法はありますか?
sockets - gethostbyname()は、Linux上のローカルホストのアドレスのみを返します
ローカルマシンのすべてのIPアドレスを移植可能に(WindowsとLinuxで)見つけようとしています。私が使用している方法は、最初にgethostname()を呼び出し、次にその結果をgethostbyname()に渡すことです。これにより、IPアドレスの配列が返されます。
問題は、Linuxでは、返されるアドレスは127.0.0.1だけであるということです。これはWindowsで機能しますが、ネットワークがDHCPで構成されている場合、Linuxでは機能しないと言う人が何人かいます(それが本当のことかどうかはわかりません)。
これはLinuxでこれを行う正しい方法ではありませんか?
c++ - gethostbyname の代替
ホストの IP アドレスを取得するために使用することはできませんgethostbyname
。これは非推奨の機能であり、Windows ではフリッケン時間の 10% しか機能しません!
他の関数を使用してホストの IP アドレスを見つける他の方法に関する適切なリソースを見つけることができません (MSDN をお勧めしますgetaddrinfo
が、それは私が望むものではないようです)。