Artikel ini membagikan kode yang relevan untuk Java untuk mengimplementasikan fungsi ruang obrolan TCPSocket untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
1.tcpserver.java
impor java.net.*; import java.io.*; import java.util.*; import java.util.concurrent.*; kelas publik tcpserver {private static final int serverport = 8888; Server Private MyServer = NULL; Daftar Pribadi <Socket> klien = Daftar ArrayList baru <Socket> (); ExecutorService MexecutorService swasta; public tcpserver () {coba {myServer = server Newsocket (serverport); MexecutorService = Executors.NewCachedThreadPool (); System.out.println ("Mulai:"); Soket mysocket = null; while (true) {mysocket = myserver.accept (); Clients.add (MySocket); MexecutorService.Execute (ThreadServer baru (MySocket)); }} catch (Exception e) {e.printstacktrace (); System.exit (0); }} class ThreadServer mengimplementasikan runnable {private socket msocket = null; Private BufferedReader di = null; printwriter pribadi out = null; Private String mstrmsg = null; Threadserver publik (soket soket) {coba {this.mssocket = soket; di = BufferedReader baru (inputStreamReader baru (mssocket.getInputStream (), "GB2312")); mstrmsg = "user:" + msocket.getInetAddress () + "Come Total:" + client.size (); SendMassage (); } catch (ioException e) {System.out.println ("erorr"); System.exit (0); }} private void sendMassage () {coba {System.out.println (mstrmsg); untuk (socket mysocket: klien) {out = new printwriter (outputStreamWriter baru (mysocket.getoutputStream (), "gb2312"), true); out.println (mstrmsg); }} catch (ioException e) {System.out.println ("erorr"); System.exit (0); }} public void run () {coba {while ((mstrmsg = in.readline ())! = null) {if (mstrmsg.trim (). equals ("exit")) {client.remove (msocket); melampirkan(); out.close (); mstrmsg = "user:" + msocket.getInetAddress () + "Keluar pajak:" + client.size (); ; msocket.close (); SendMassage (); merusak; } else {mstrmsg = msocket.getInetAddress () + ":" + mstrmsg; SendMassage (); }}} catch (ioException e) {System.out.println ("erorr"); System.exit (0); }}} public static void main (string [] args) {new tcpserver (); }} 2.tcpclient.java
impor java.net.*; impor java.io.*; import java.util.concurrent.*; kelas publik tcpclient {private static final int port = 8888; klien soket pribadi = null; Private BufferedReader Sin = null; ExecutorService MexecutorService swasta; tcpclient publik () {coba {klien = soket baru ("120.27.126.174", port); Sin = New BufferedReader (InputStreamReader baru (client.getInputStream (), "GB2312")); MexecutorService = Executors.NewCachedThreadPool (); mexecutorservice.execute (threadclient baru (klien)); String msg = null; while ((msg = sin.readline ())! = null) {System.out.println (msg); }} catch (ioException e) {System.out.println (e.getMessage ()); }} class ThreadClient Extends Thread {private socket msocket = null; Private String msg = null; BufferedReader di = null; Printwriter out = null; Threadclient publik (soket soket) {this.msocket = socket; } public void run () {coba {in = new bufferedReader (new InputStreamReader (System.in)); out = printwriter baru (outputStreamWriter baru (msocket.getoutputStream (), "gb2312"), true); while (true) {msg = in.readline (); out.println (msg); if (msg.trim (). equals ("exit")) {in.close (); out.close (); mexecutorservice.shutdownnow (); merusak; }}} catch (ioException e) {System.out.println ("See You"); System.exit (0); }}} public static void main (string [] args) {new tcpclient (); }}Di atas adalah kode untuk Java untuk mengimplementasikan fungsi ruang obrolan TCPSocket. Saya berharap ini akan membantu untuk pembelajaran semua orang.