android通过socket发送和获取socket消息

slhcrj9b  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(255)

我想用套接字发送一条消息。我检查了接收和发送信息的所有选项(如果有比这更好的方法,请告诉我)。我有个问题。我在视频中看到了如何做到这一点,但他们没有显示如何发送信息与它。我怎样才能用这个发信息?如何使用“thread3”类?

private PrintWriter output;
    private BufferedReader input;
    class Thread1 implements Runnable {
        @Override
        public void run() {
            Socket socket;
             try {
                 socket = new Socket("105.07.60.74", 6791);
                 output = new PrintWriter(socket.getOutputStream());
                 input = new BufferedReader(new InputStreamReader(socket.getInputStream()));

                 runOnUiThread(new Runnable() {
                     @Override
                     public void run() {
                         Toast.makeText(MainActivity.this, "Connected", Toast.LENGTH_SHORT).show();
                     }
                 });

                 new Thread(new Thread2()).start();

             } catch (IOException e) {
                 e.printStackTrace();
             }
        }
    }

    class Thread2 implements Runnable {
        @Override
        public void run() {
            while (true) {
                try {
                    final String message = input.readLine();
                    if (message != null) {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Toast.makeText(MainActivity.this, "Server: " + message, Toast.LENGTH_SHORT).show();
                            }
                        });
                    } else {
                        Thread Thread1 = new Thread(new Thread1());
                        Thread1.start();
                    }

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    class Thread3 implements Runnable {
        private String message;

        Thread3(String message) {
            this.message = message;
        }

        @Override
        public void run() {
            output.write(message);
            output.flush();
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(MainActivity.this, "Sent", Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题