繁体   English   中英

客户端-服务器应用程序:无法从Android手机连接到Java服务器

[英]Client-Server application: can't connect to java server from android mobile phone

我正在尝试从Android手机(客户端)连接到Java(服务器)。 服务器代码:

import java.net.*;

/**
* Created by mwalko on 07.06.16.
*/
public class Main {
 public static void main(String[] args)
 {
    try
    {
        ServerSocket sock = new ServerSocket (8601);
        for (;;)
        {
            Socket newsock = sock.accept();
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
  }
}

然后我可以通过cURL与它交谈:

curl localhost:8601
Hello :: enter QUIT to exit 

From server: GET / HTTP/1.1. 

From server: Host: localhost:8601. 

From server: User-Agent: curl/7.47.0. 

From server: Accept: */*. 

From server: .

但是,当我尝试从适用于此代码的android连接时(我还在AndroidManifest.xml中添加了<uses-permission android:name="android.permission.INTERNET" /> ):

    new Thread() {
        @Override
        public void run() {
            try {
                Socket s = new Socket("192.168.1.102", 6000);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }.start();

我收到一个错误:

06-07 20:09:03.530 7319-7319/com.example.root.client E/AndroidRuntime: FATAL EXCEPTION: main
                                                                   Process: com.example.root.client, PID: 7319
                                                                   06-07 21:45:20.990 25482-25520/com.example.root.client W/System.err: java.net.ConnectException: failed to connect to /192.168.1.102 (port 6000): connect failed: ECONNREFUSED (Connection refused)

我可以通过电话ping 192.168.1.101。 为什么我无法连接到服务器,是否有任何错误?

如果您在调试控制台中读取该错误消息,则会指出。

无法连接到/192.168.1.102(端口6000):连接失败:ECONNREFUSED(连接被拒绝)

您的服务器代码有一个用于端口8601的套接字,这意味着它正在该端口上等待请求,而不是6000。将您的android请求端口更改为8601,或将服务器侦听端口更改为6000。

您还声明可以ping 192.168.1.101 ,但是在Java客户端中,您正在创建到IP 192.168.1.102的连接。 例如,如果服务器代码在192.168.1.101上运行,则来自Android客户端(在这种情况下为192.168.1.102 )的每个请求都应通过端口8601(通常写为: 192.168.1.101 :8601)转发到192.168.1.101

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM