Android 安卓3g发送字符串

Android 安卓3g发送字符串,android,network-programming,3g,Android,Network Programming,3g,我正在尝试将一个简单的字符串从android设备发送到pc。 我设法通过wifi发送字符串(因为是在局域网上),但代码在3g上不起作用。 我使用的代码是: class send extends AsyncTask { @Override protected Object doInBackground(Object... params) { try { Ine

我正在尝试将一个简单的字符串从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;
            }
        }

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

你的电脑连接在哪里?是NAT后面的局域网吗?您是否将LAN IP地址用作服务器地址?什么是“这里的IP”

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


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

无论您使用的是wifi还是其他网络类型,这都不重要。您在使用3g时是否遇到任何异常?它似乎没有给出任何异常添加
e.printStackTrace()catch
语句添加code>,并查看它是否在logcat中显示任何
Exception
。我在每个catch语句中添加了Toast.makeText(),而不是e.printStackTrace(),因为我是通过导出程序而不是在模拟器上在设备上尝试该程序。这是因为我需要用sim卡测试3g连接,而且eclipse无法将我的设备识别为AVD(我打开了调试模式),因此我无法直接测试,只能通过导出APK进行测试。但是,祝酒词没有显示任何内容。没有任何变化。。。当我点击发送按钮时,没有异常,程序继续运行,但是电脑没有收到任何东西如果我点击按钮,不会立即发生任何事情,但是如果我等待两分钟,可能会更少,程序崩溃了…有什么问题吗?试着在最后一个块中记录异常并将其发布到问题中正如我在@piotr post中所说的,我正在通过将APK导出到设备来尝试该程序,因为Eclipse无法将该设备识别为AVD,我需要尝试3g连接,所以我甚至无法在模拟器上运行它