1. ホーム
  2. アンドロイド

発生原因:android.system.ErrnoException: isConnected が異常終了したため。EHOSTUNREACH (ホストへのルートがない)

2022-03-15 23:03:09

昨天还能访问,不管是通过浏览器还是android客户端,今天浏览器输入地址:。 http://192.168.8.101:8080/QzoneServer/UserServer?action=1&username=admin&password=123456



就报错,android客户端也登录失败。



アンドロイド日志报错如下



11-29 17:20:26.889: W/System.err(32574): org.apache.http.conn.HttpHostConnectException: 接続先 http://192.168.8.101:8080 変更されました



11-29 17:20:26.889: W/System.err(32574): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:193)



11-29 17:20:26.889: W/System.err(32574): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169)



11-29 17:20:26.889: W/System.err(32574): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)



11-29 17:20:26.889: W/System.err(32574): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:366)



11-29 17:20:26.890: W/System.err(32574): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:596)



11-29 17:20:26.890: W/System.err(32574): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:517)



11-29 17:20:26.890: W/System.err(32574): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:495)



11-29 17:20:26.890: W/System.err(32574): at com.higgs.qqzone1.common.HttpCommon.doGet(HttpCommon.java:89)



11-29 17:20:26.890: W/System.err(32574): at com.higgs.qqzone1.common.HttpCommon.doGet(HttpCommon.java:137)



11-29 17:20:26.890: W/System.err(32574): at com.higgs.qqzone1.dao.impl.UserInfoDaoImpl.userLogin(UserInfoDaoImpl.java:62)



11-29 17:20:26.890: W/System.err(32574): at com.higgs.qqzone1.biz.UserInfoBiz.userLogin(UserInfoBiz.java:16)



11-29 17:20:26.890: W/System.err(32574): at com.higgs.qqzone1.LoginActivity U s e r L o g i n A s y . d o I n B a c k g r o u n d ( L o g i n A c t i v i t y . j a v a : 63 ) 11 - 29 17 : 20 : 26.890 : W / S y s t e m . e r r ( 32574 ) : a t c o m . h i g g s . q q z o n e 1. L o g i n A c t i v i t y UserLoginAsy.doInBackground(LoginActivity.java:1)



11-29 17:20:26.890: W/System.err(32574): at android.os.AsyncTask 2. c a l l ( A s y n c T a s k . j a v a : 307 ) 11 29 17 : 20 : 26.890 : W / S y s t e m . e r r ( 32574 ) : a t j a v a . u t i l . c o n c u r r e n t . F u t u r e T a s k . r u n ( F u t u r e T a s k . j a v a : 237 ) 11 29 17 : 20 : 26.890 : W / S y s t e m . e r r ( 32574 ) : a t a n d r o i d . o s . A s y n c T a s k SerialExecutor 1. r u n ( A s y n c T a s k . j a v a : 246 ) 11 29 17 : 20 : 26.890 : W / S y s t e m . e r r ( 32574 ) : a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r . r u n W o r k e r ( T h r e a d P o o l E x e c u t o r . j a v a : 1113 ) 11 29 17 : 20 : 26.890 : W / S y s t e m . e r r ( 32574 ) : a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r Worker.run(ThreadPoolExecutor.java:588)



11-29 17:20:26.890: W/System.err(32574): at java.lang.Thread.run(Thread.java:833)



11-29 17:20:26.890: W/System.err(32574): Caused by: java.net.ConnectException: 5000ms 後に /192.168.8.101 (port 8080) に接続できませんでした: isConnected failed: EHOSTUNREACH (No route to host)...



11-29 17:20:26.890: W/System.err(32574): at libcore.io.IoBridge.isConnected(IoBridge.java:234).



11-29 17:20:26.890: W/System.err(32574): at libcore.io.IoBridge.connectErrno(IoBridge.java:171).



11-29 17:20:26.890: W/System.err(32574): at libcore.io.IoBridge.connect(IoBridge.java:122)



11-29 17:20:26.890: W/System.err(32574): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)です。



11-29 17:20:26.890: W/System.err(32574): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:452)です。



11-29 17:20:26.890: W/System.err(32574): at java.net.Socket.connect(Socket.java:938)です。



11-29 17:20:26.890: W/System.err(32574): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:124)



11-29 17:20:26.890: W/System.err(32574): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection( DefaultClientConnectionOperator.java:149 )



11-29 17:20:26.891: W/System.err(32574): ... 18 more



11-29 17:20:26.891: W/System.err(32574)です。原因: android.system.ErrnoException: isConnected に失敗しました。EHOSTUNREACH (ホストへのルートがありません)



11-29 17:20:26.891: W/System.err(32574): at libcore.io.IoBridge.isConnected(IoBridge.java:223)



11-29 17:20:26.891: W/System.err(32574): ... 25 more



---------- ---------- ---------- -



半日かけて情報を確認し、最終的にstackoverflow.comの回答により、サーバー側のプログラムでもクライアント側のプログラムでもなく、ネットワークの問題であると判断された。会社のルーターはまだ使えない、前のテストは自分のMeow King E5730を使って、昨日はうまくいったが、今日はうまくいかない! 自分のルーターを再起動し、やっとルーターを工場出荷時の設定に戻しました。再び、携帯のブラウザからサーバー側のアドレスにアクセスできるようになりました。サーバーと同じルーターにアンドロイドクライアントを追加し、アンドロイドクライアントのアクセスアドレスをサーバーのipアドレスに変更します。再度apkを詰めて実行したら、ログインできるようになりました



外部ネットワークにはアクセスできるものの、モバイルブラウザからはアクセスできないということは、クライアントには問題がなく、クライアントは以前から動作していたことになります。サーバー側は何も変わっておらず、問題は両者をつなぐネットワークにある。ルーターの再起動は、工場出荷時の設定に戻すこととは異なります。