- - PR -
connect関数で”No route to host”というエラーが発生する。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-04 16:29
ソケットプログラムの練習をしています。
下記クライアントプログラムの("127.0.0.1")を("192.168.1.XX")と書き換えて、 サーバープラグラムが起動していない端末でクライアントプログラムを実行すると、 connect関数で”No route to host”というエラーが発生します。 ("127.0.0.1")では正常に動作します。 pingは通っていますし、IPやPORT番号に間違いはありません。 基本的なことですいませんが、エラーの原因を教えてください。 addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr("127.0.0.1"); addr.sin_port = htons(PORT); if (connect(fd_socket, (struct sockaddr *) &addr, sizeof(addr)) == -1) { perror("client: connect"); return 1; } | ||||
|
投稿日時: 2005-01-04 17:33
デフォルト・ゲートウェイの設定しとる?
| ||||
|
投稿日時: 2005-01-04 18:31
コブラさんありがとうございます。
デフォルト・ゲートウェイの設定は、以下のとおりです。 [root@localhost root]# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 "192.168.1.XX"は、LAN内の端末のアドレスなので、デフォルト・ゲートウェイは関係ない のではないかと思われます。 | ||||
|
投稿日時: 2005-01-04 19:27
>192.168.1.XX
というホストが LAN 上に存在しとらんから。 | ||||
|
投稿日時: 2005-01-04 20:54
ping 192.168.1.XX
では、返答が返ってくるので192.168.1.XXというホストはLAN上に存在しています。 >192.168.1.XX >というホストが LAN 上に存在しとらんから。 当方の勉強不足だと考えられますが、上記の意味がどういう意味なのか解りません。 済みませんが教えて頂けますか? | ||||
|
投稿日時: 2005-01-04 22:55
意味も判らんとよう、「存在してます」と応えられるもんや (プ
| ||||
|
投稿日時: 2005-01-05 10:52
はじめまして。
192.168.1.XX上のサーバプログラムの問題のような気がします。 サーバプログラムのaddr.sin_addr.s_addr は変更されましたか? もし127.0.0.1としていたら通信できないような気がします。 | ||||
|
投稿日時: 2005-01-05 21:59
ニックさんありがとうございます。
サーバプログラムのaddr.sin_addr.s_addrはINADDR_ANYなので問題ありません。 コブラさんの言うとおり,ネットワークの基礎を勉強します。 |