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