1

私は無線LAN上でBSDソケットを使用しています。サーバーに接続すると、サーバーコンピューターのIPアドレスがときどき変わることに気づきました。問題は、IPアドレスをリテラル文字列としてコードに入力することです。したがって、変更するたびに、コードを調べてそこで変更する必要があります。その時点でIPが何であれ使用するようにコードを変更するにはどうすればよいですか?これはサーバーコードの呼び出しです

if ((status = getaddrinfo("192.168.2.2", port, &hints, &servinfo)) != 0)

クライアント側も同じです。両側のアドレスにNULLを試しましたが、クライアントが接続せず、「接続が拒否されました」というエラーが表示されます。

助けてくれてありがとう。

4

3 に答える 3

3

IPアドレスではなく、hostsファイルまたはDNSで検索できるドメイン名を使用してください。

于 2011-08-16T16:14:46.913 に答える
1

コマンドラインパラメータはどうですか?

int main( inr argc, char* argv[] ) {
    const char* addr = "myfancyhost.domain.com"; /* default address */
    if ( argc > 1 ) {
        addr = argv[1]; /* explicit address */
    }
    if ((status = getaddrinfo(addr, ...
于 2011-08-16T16:16:30.480 に答える
1

サーバーに名前を付け、gethostbynameそのアドレスを見つけるために使用します(通常、サーバー名をハードコーディングするのではなく構成ファイルに入れますが、構成ファイルが見つからない場合はデフォルトでハードコーディングします。傷つく)。

于 2011-08-16T16:18:37.367 に答える