Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android客户端-Java服务器,客户端不';如果订单为';我做得不对_Java_Android_Server_Client - Fatal编程技术网

Android客户端-Java服务器,客户端不';如果订单为';我做得不对

Android客户端-Java服务器,客户端不';如果订单为';我做得不对,java,android,server,client,Java,Android,Server,Client,我的应用程序使用服务器-客户端系统时出现问题。 由于我是初学者,无法从Android开发手册中获得一些有用的信息,因此我使用了本教程: http: //www.myandroidsolutions.com/2012/07/20/android-tcp-connection-tutorial/。我对此进行了改革,因为我不需要将字符串从服务器发送到客户端。但是我遇到了一个问题,那就是我需要保持“连接顺序”。现在我想知道,如果没有与服务器(基于Android应用程序)的连接,如何编写一个任务,该任务一

我的应用程序使用服务器-客户端系统时出现问题。 由于我是初学者,无法从Android开发手册中获得一些有用的信息,因此我使用了本教程: http: //www.myandroidsolutions.com/2012/07/20/android-tcp-connection-tutorial/。我对此进行了改革,因为我不需要将字符串从服务器发送到客户端。但是我遇到了一个问题,那就是我需要保持“连接顺序”。现在我想知道,如果没有与服务器(基于Android应用程序)的连接,如何编写一个任务,该任务一直在后台运行

这是我尝试过的代码,但不起作用:

public void checkConnection() {
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(10000);
                do {
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                socket = new Socket("192.168.178.52", 9090);
                                Toast.makeText(MainActivity.this, "not connected yet", Toast.LENGTH_SHORT).show();
                            } catch (Exception e) {
                                Toast.makeText(MainActivity.this, "Error1: " + e, Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                } while (!socket.isConnected());
                Thread.sleep(0);
            } catch (Exception e) {
                Toast.makeText(MainActivity.this, "Error2: " + e, Toast.LENGTH_LONG).show();
            }
        }
    });
}
如果我以正确的顺序启动应用程序(1.服务器,2.客户端),则该应用程序正常工作,如果不正常,则不正常。我也没有得到AsyncTask和接口的部分,这是在做什么??但这不是主题。 下面是我的AsyncTask,它经过了改革:

public class connectTask extends AsyncTask<String,String,TCPClient> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        checkConnection();
    }

    @Override
    protected TCPClient doInBackground(String... message) {
        mTcpClient = new TCPClient(new TCPClient.OnMessageReceived() {
            @Override
            public void messageReceived(String message) { // method for receiving the message
                publishProgress(message); // method calls the OnProgressUpdate
            }
        });
        mTcpClient.run(); // running the whole Client
        return null;
    }
}
公共类connectTask扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
检查连接();
}
@凌驾
受保护的TCPClient doInBackground(字符串…消息){
mTcpClient=新的TCPClient(新的TCPClient.OnMessageReceived(){
@凌驾
public void messageReceived(字符串消息){//用于接收消息的方法
publishProgress(message);//方法调用OnProgressUpdate
}
});
mTcpClient.run();//运行整个客户端
返回null;
}
}
事先非常感谢,请原谅我英语不好