通过/通过USB电缆将Android设备传送到Localhost(我的Windows 8 PC)

时间:2013-09-04 07:00:34

标签: java android windows usb localhost

我有Android设备Samsung GT OS 2.2.1

我成功通过WIFI发送HTTP请求到我的Localhost(我的Windows 8 PC)

但是,考虑到速度,我还想学习“如何通过USB向我的Windows 8 PC发送HTTP请求到本地主机”

这是我通过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:Network Unreachable”

所以我通过一些网站研究它,我发现了这个

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 - Connection refused”

我认为我的防火墙出了问题,但我不知道如何修复它

所以我的问题是

有没有其他方法可用于在android到服务器之间进行通信?

我真的需要我的Android设备发送数据到我的localhost(Windows 8 pc)作为我的服务器 并且通过USB接收服务器的响应

感谢..

2 个答案:

答案 0 :(得分:1)

感谢@Ram和@chyrlis

我想分享它,也许它会帮助其他人

所以我到处都是谷歌搜索,他们都告诉我有关usb tether的信息

这是我为解决自己的问题所做的工作

  1. 在我的电脑中,我输入cmd> ipconfig
  2. 并且我的Android设备没有任何以太网

    1. 我开启了“USB TETHERING”(我正在使用Android Froyo GT-S5830) (请注意,当我用Google搜索时,他们都告诉我并非所有设备都有“USB TETHERING”)

    2. 然后我输入cmd> ipconfig再次

    3. 并且我的android devie有一个以太网,ip = 192.168.42.201 (请注意,此IP是动态[DHCP],因此您可以先将其更改为静态) 这是教程 http://www.youtube.com/watch?v=SIYyRYdV7B8

      所以我将我的IP更改为192.168.42.202

      1. 使用我自己的代码
      2. 我将网址更改为

        "url = new URL("http://192.168.42.202/MySkripsi/testWriteFile.php");" 
        

        注意192.168.42.201是我从ipconfig获得的IP 我将我的IP更改为192.168.42.202所以它将是静态IP

        1. 和BAM 在那里,我可以使用我的设备的http请求并从我的服务器获取响应
        2. 希望有所帮助

答案 1 :(得分:0)

好吧,我开发了一个连接我的jsp文件的应用程序。示例代码。

              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();
                 }

所以,您可以根据需要更改(在网址中)此代码。如果您想在usb中运行,则必须将samsung usb驱动程序下载到您的电脑上,然后运行该应用程序。之后您启用开发人员您设备中的选项。