【问题标题】:writing DataOutputStream in Android在 Android 中编写 DataOutputStream
【发布时间】:2019-06-29 23:33:21
【问题描述】:

我正在尝试设置一个套接字客户端,暂时只将一个 int 与 DataOutputStream 一起发送到服务器。当我从我的 PC 运行它时,我的应用程序运行良好,但我在 Eclipse 上的 Android 模拟器上收到此错误消息:“应用程序 SOCKET 已意外停止,请重试”。有小费吗?如果您发现任何其他错误,为什么这通常不起作用,任何建议表示赞赏。

Android 应用代码:

import java.io.*;  
import java.net.*;  
import android.app.Activity;  
import android.os.Bundle;  
import android.widget.TextView;

public class SOCKET extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setText("App1 Test");
        setContentView(tv);
        Client app1Test = new Client();
        app1Test.run();
    }

    public class Client implements Runnable{

        @Override
        public void run() {
            int message = 13;
            Socket App1 = null;

                   try {
                     App1 = new Socket("xxxxx.dyndns-remote.com", ####);
                } catch (UnknownHostException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            DataOutputStream output = null;

            try {
                output = new DataOutputStream(App1.getOutputStream());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


            try {
                output.write(message);
                output.close(); 
                App1.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
    }
}
}

【问题讨论】:

  • 你能提供logcat的输出吗?

标签: android sockets stream tcpclient dataoutputstream


【解决方案1】:

在您的清单中设置互联网权限

<uses-permission android:name="android.permission.INTERNET" />

允许您的应用程序打开套接字。见http://developer.android.com/reference/android/Manifest.permission.htmlhttp://developer.android.com/resources/samples/SampleSyncAdapter/AndroidManifest.html

【讨论】:

  • 天哪,我已经绞尽脑汁 2 个小时了,我已经忘记了,哈哈。谢谢你百万人:)
【解决方案2】:

使用字节数组发送数据。

byte buf [] = message.getBytes ();
output.write(buf);

感谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多