Android发送超过3g的字符串

时间:2013-12-10 11:40:00

标签: android network-programming 3g

我正在尝试从Android设备向PC发送一个简单的字符串。 我设法通过wifi发送字符串(因为在LAN网络上),但代码不能超过3g。 我正在使用的代码是:

class send extends AsyncTask
        {

            @Override
            protected Object doInBackground(Object... params) {
                try {

                    InetAddress serverAddr = InetAddress.getByName("IP here")
                    Socket socket = new Socket(serverAddr, 8564);
                    String message = "sample_message";
                    try {
                        PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
                        out.println(message);   

                    } catch(Exception e) {}
                    finally {
                        socket.close();
                    }
                } catch (Exception e) {}
                return null;
            }
        }

2 个答案:

答案 0 :(得分:0)

您是否尝试过创建DataOutputStream之类的

DataOutputStream dos=new DataOutputStream(socket.getOutputStream());
dos.writeBytes(message + '\n');

而不是:

PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
                        out.println(message);

答案 1 :(得分:0)

您的PC连接在哪里?它是NAT背后的局域网吗?您是否使用LAN IP地址作为serverAddr?什么是" IP在这里"?

如果您使用NAT后面的本地网络IP地址,您将永远无法连接。

如果你有路由器/ wifi AP,启用端口转发到你的PC并使用ISP提供的公共IP地址作为serverAddr。