Java로 구현된 매우 간단한 온라인 채팅 가젯으로 정보를 양방향으로 동기적으로 전송하고 기능이 추가되고 있습니다
로컬 영역 네트워크의 IP를 직접 변경하세요. 클라이언트의 로컬 호스트 IP만 변경하면 됩니다. 다른 PC의 IP로
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(); } } }
클라이언트:
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(); } } }
위 내용은 양방향 동기화 채팅 애플릿 [ByJavaOnLinux] 구현 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!