Home > WeChat Applet > Mini Program Development > Two-way synchronization chat applet [ByJavaOnLinux] implementation code

Two-way synchronization chat applet [ByJavaOnLinux] implementation code

高洛峰
Release: 2017-03-24 14:01:48
Original
2163 people have browsed it

A very simple online chat gadget, implemented in Java, sends information synchronously in both directions, and the function is being added
Please change the IP in the local area network by yourself, just change the localhost IP of the client to the IP of another PC

import java.io.*;
import java.net.Socket;
import java.net.ServerSocket;
import java.net.SocketException;
public class TestServer {
        public static void main(String[] args) {
                try {
                        //open the communication port for messenge-transfer
                        //server socket id:8888
                        ServerSocket s = new ServerSocket(8888);
                        //create socket instance and set it be waiting state to accept data
                        Socket s1 = s.accept();
                        //original data stream
                        InputStream is = s1.getInputStream();
                        OutputStream os = s1.getOutputStream();
                        
                        DataOutputStream dos = new DataOutputStream(os);
                        DataInputStream dis = new DataInputStream(is);
                        System.out.println("Server started!");
                        new MyServerReader(dis).start();
                        new MyServerWriter(dos).start();
                } catch (IOException ioe) {
                        ioe.printStackTrace();
                }
        }
}
class MyServerReader extends Thread {
        private DataInputStream dis;
        public MyServerReader(DataInputStream dis) {
                this.dis = dis;
        }
        public void run() {
                String info;
                try {
                        while (true) {
                                info = dis.readUTF();
                                System.out.println("Ta said:" + info);
                                if (info.equals("bye") || info.equals("88")) {
                                        System.out.println("Ta offline, connection's out!");
                                        System.exit(0);
                                }
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}
class MyServerWriter extends Thread {
        private DataOutputStream dos;
        public MyServerWriter (DataOutputStream dos) {
                this.dos = dos;
        }
        public void run() {
                String info;
                InputStreamReader isr = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(isr);
                try {
                        while (true) {
                                info = br.readLine();
                                dos.writeUTF(info);
                                if (info.equals("bye") || info.equals("88")) {
                                        System.out.println("Local machine Offline, application exit!");
                                        System.exit(0);
                                }
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}
Copy after login

Client:

import java.io.*;
import java.net.Socket;
import java.net.SocketException;
public class TestClient {
        public static void main (String[] args) {
                try {
                        Socket s1 = new Socket("127.0.0.1", 8888);
                        InputStream is = s1.getInputStream();
                        OutputStream os = s1.getOutputStream();
                        DataInputStream dis = new DataInputStream(is);
                        DataOutputStream dos = new DataOutputStream(os);
                        new MyClientReader(dis).start();
                        new MyClientWriter(dos).start();
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}
class MyClientReader extends Thread {
        private DataInputStream dis;
        public MyClientReader(DataInputStream dis) {
                this.dis = dis;
        }
        public void run() {
                String info;
                try {
                        while (true) {
                                info = dis.readUTF();
                                System.out.println("Ta said:" + info);
                                if (info.equals("bye") || info.equals("88")) {
                                        System.out.println("Ta offline, connection's out!");
                                        System.exit(0);
                                }
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}
class MyClientWriter extends Thread {
        private DataOutputStream dos;
        public MyClientWriter (DataOutputStream dos) {
                this.dos = dos;
        }
        public void run() {
                String info;
                InputStreamReader isr = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(isr);
                try {
                        while (true) {
                                info = br.readLine();
                                dos.writeUTF(info);
                                if (info.equals("bye") || info.equals("88")) {
                                        System.out.println("Local machine Offline, application exit!");
                                        System.exit(0);
                                }
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}
Copy after login

The above is the detailed content of Two-way synchronization chat applet [ByJavaOnLinux] implementation code. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template