发送一个字符串到wifi连接设备返回Android中的EHOSTUNREACH(没有到主机的路由)

时间:2014-12-11 17:22:07

标签: android sockets networking tcp android-networking

因此,应用程序的流程是,

首先,我使用我的Android手机通过wifi连接设备(这是一个服务器),然后,我想将一个字符串发送到该设备,就是这样。

问题是,当我尝试像这样发送时

new Thread(new Runnable() {
    @Override
    public void run() {
        try {

            Socket socket = new Socket("192.168.8.101",2001);
            DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
            DOS.writeUTF("61");
            socket.close();

        } catch (Exception e) {    
            final String error = e.getMessage();
            runOnUiThread(new Runnable(){

                @Override
                public void run() {
                    Toast.makeText(mContext, error, Toast.LENGTH_SHORT).show();
                }

            });

            Log.d("test1",e.getMessage());
            e.printStackTrace();
        }

}).start();

它返回无法连接到异常

中的/192.168.8.101 (port 2001) : connect failed EHOSTUNREACH (No route to host)

如何修复,通过编程或使用某种方式,有没有办法检查IP和端口是否正确?感谢

1 个答案:

答案 0 :(得分:2)

确保关闭该端口上的防火墙。

为确保IP正常运行,我们通常会ping该机器。

有一个名为wireshark的工具可以点击进入您计算机的数据包。所以让你在1000循环和泵消息时发送功能。在服务器上转动wiresahrak,看看你是否能够在那里获得数据包。

还有很多其他程序可以连接到套接字。拿一个示例java程序并尝试连接到另一个套接字。如果确实如此,你的Android内容也会这样做。