超过 / 通过 USB 电缆通信 Android 设备到本地主机 (我 Windows 8 PC)

标签: Android windows
发布时间: 2013/12/9 20:46:25
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有 Android 设备三星 GT OS 2.2.1

和我已成功发送 HTTP 请求到我的本地主机 (我 Windows 8 PC) 在 wifi 上网

但速度的考虑,我也想要学习"如何将 HTTP 请求发送到本地主机我 windows 8 PC 通过 USB"

这是我的代码,通过 WIFI 发送

URL url = null;
        try {
            /*Wireless LAN adapter Local Area Connection*/
        url = new URL("http://192.168.xxx.xxx/MySkripsi/testWriteFile.php");
        String body = "";
        body += "text=" + messageTujuan;

        byte[] bytes = body.getBytes();
        HttpURLConnection conn = null;
        conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
        OutputStream  out = conn.getOutputStream(); 
        out.write(bytes);
        out.close();
        int status = conn.getResponseCode();

        if (status != 200) {
            Toast.makeText(con, "status = " + status , 0).show();
        }
        else
        {
            InputStream is = conn.getInputStream();

            BufferedReader reader = new BufferedReader(new InputStreamReader(is));
            StringBuilder sb = new StringBuilder();
            String line = null;
            try {
                while ((line = reader.readLine()) != null) {
                    sb.append((line + "\n"));
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    is.close(); 
                } catch (IOException e) {
                    e.printStackTrace(); 
                }
            }
            Toast.makeText(con, "Return Nya = " +sb.toString(), 0).show();
            Log.v("TEST" , "Return Nya = " + sb.toString());
            tv.setText(sb.toString());
            is.close();
        }

    } catch (Exception e) {
        Toast.makeText(this, e.toString() + "#" + e.getMessage(), 0).show();
    }

此代码中,给我造成

但每当我关闭 WIFI 它显示

"java.net.SocketException: 网络无法到达"

因此,我研究它通过一些网站,并发现了这个

http://www.codeproject.com/Articles/191930/Android-Usb-Port-Forwarding

这是打印屏幕

http://imgur.com/QmHToQU

在我的 android 设备的 USB 隧道也说"服务正在运行,已连接了!"

但是,如上所述,在同一代码除外:

url = new URL("h**p://127.0.0.1:80/MySkripsi/testWriteFile.php");

其结果是"java.netConnectException: /127.0.0.1:80-连接被拒绝"

我觉得有点不对劲我的防火墙,但我不知道如何修复它

我的问题是

是否有任何其他方法,可以用于 android 到服务器之间的通信吗?

我真的需要我 android 设备将数据发送到我的本地主机上 (Windows 8 pc) 作为我的服务器和接收服务器的响应 USB 上

谢谢你...

解决方法 1:

好,我开发了一个应用程序中的连接我 jsp file.here 的示例代码。

              try
                 {

                    URL url = new URL("http:/xx.xxx.xxx.x:80/sample.jsp");
                    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                     InputStream in = new BufferedInputStream(urlConnection.getInputStream());
                     BufferedReader r = new BufferedReader(new InputStreamReader(in));
                     String x = "";
                     String total = "";
                     int i=0;
                     ArrayList<String> content = new ArrayList();
                     while((x = r.readLine()) != null)
                     {
                                 content.add(x);

                     }
                     in.close();
                     r.close();
                 }
                 catch(Exception e)
                 {
                     e.printStackTrace();
                     Toast.makeText(Customer.this, e.toString(), Toast.LENGTH_SHORT).show();
                 }

所以,你可以让 (url) 中更改此代码作为您的愿望。如果你想要在 usb 手段中运行,您必须将三星 usb 驱动程序下载到您的 pc,然后你运行应用程序。在此之前您启用开发人员选项在您的设备中。

官方微信
官方QQ群
31647020