0

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

安卓应用程序代码:

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

2 回答 2

0

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

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

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

于 2011-03-18T13:38:32.287 回答
0

使用字节数组发送数据。

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

萨卢多斯。

于 2017-09-15T10:53:10.680 回答