Ein sehr einfaches Online-Chat-Gadget, implementiert in Java, das Informationen synchron in beide Richtungen sendet, und die Funktion wird hinzugefügt
Bitte ändern Sie die IP im LAN selbst, ändern Sie einfach die Localhost-IP des Clients in die IP eines anderen PCs
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(); } } }
Das obige ist der detaillierte Inhalt vonImplementierungscode für das bidirektionale Synchronisierungs-Chat-Applet [ByJavaOnLinux].. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!