Este artículo comparte el código relevante para Java para implementar la función de la sala de chat TCPSocket para su referencia. El contenido específico es el siguiente
1.tcpserver.java
import java.net.*; import java.io.*; import java.util.*; import java.util.concurrent.*; clase pública tcpServer {private static final int serverport = 8888; SERVERSOCKECT PRIVADO myServer = null; Lista privada <Socket> clientes = new ArrayList <Socket> (); Ejecutores privados de servicio de ejecutores MexecutorService; public tcpServer () {try {myServer = new Serversocket (ServerPort); mexecutorservice = ejecutors.newCachedThreadPool (); System.out.println ("Start:"); Socket mySocket = nulo; while (true) {mySocket = myServer.accept (); Clientes.add (mysocket); mexecutorservice.execute (nuevo ThreadServer (mySocket)); }} catch (Exception e) {E.PrintStackTrace (); System.exit (0); }} La clase ThreadServer implementa runnable {private socket msocket = null; BufferedReader privado en = NULL; Private PrintWriter out = NULL; cadena privada mstrmsg = null; public ThreadServer (socket Socket) {try {this.mssocket = socket; in = new BufferedReader (new InputStreamReader (mssocket.getInputStream (), "GB2312")); mstrmsg = "user:" + msocket.getInetAddress () + "Come Total:" + Clients.size (); SendMassage (); } catch (ioException e) {system.out.println ("erorr"); System.exit (0); }} private void sendMassage () {try {system.out.println (mstrmsg); for (socket mySocket: clientes) {out = new PrintWriter (new OutputStreamWriter (mysocket.getOutputStream (), "GB2312"), true); out.println (mstrmsg); }} catch (ioException e) {System.out.println ("erorr"); System.exit (0); }} public void run () {try {while ((mstrmsg = in.readline ())! = null) {if (mstrmsg.trim (). Equals ("exit")) {clientes.remove (msocket); cercar(); out.close (); mstrmsg = "user:" + msocket.getInetAddress () + "Exit Taxal:" + clients.size (); ; msocket.close (); SendMassage (); romper; } 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
import java.net.*; import java.io.*; import java.util.concurrent.*; clase pública tcpClient {private static final int port = 8888; Socador privado Client = null; Private BufferedReader sin = nulo; Ejecutores privados de servicio de ejecutores MexecutorService; public tcpClient () {try {client = new Socket ("120.27.126.174", puerto); sen = new BufferedReader (new InputStreamReader (Client.getInputStream (), "GB2312")); mexecutorservice = ejecutors.newCachedThreadPool (); mexecutorservice.execute (nuevo ThreadClient (Cliente)); Cadena msg = nulo; while ((msg = sin.readline ())! = null) {system.out.println (msg); }} catch (ioException e) {System.out.println (E.GetMessage ()); }} La clase ThreadClient extiende el subproceso {socket privado msocket = null; cadena privada msg = null; BufferedReader en = NULL; PrintWriter out = null; public ThreadClient (socket socket) {this.msocket = socket; } public void run () {try {in = new BufferedReader (new InputStreamReader (System.in)); out = new PrintWriter (new OutputStreamWriter (msocket.getOutputStream (), "GB2312"), true); while (true) {msg = in.readline (); out.println (msg); if (msg.trim (). igual ("salir")) {in.close (); out.close (); Mexecutorservice.shutdownnow (); romper; }}} Catch (IOException e) {System.out.println ("Métate"); System.exit (0); }}} public static void main (string [] args) {new tcpClient (); }}Lo anterior es el código de Java para implementar la función de la sala de chat TCPSocket. Espero que sea útil para el aprendizaje de todos.