安卓通过3g发送字符串



我正试图将一个简单的字符串从android设备发送到pc。我设法通过wifi发送了字符串(因为是在局域网上),但代码在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;
            }
        }

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

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

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

您是否尝试过创建类似的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);

相关内容

  • 没有找到相关文章

最新更新