Cet article partage le code pertinent pour Java pour implémenter la fonction de salle de discussion TCPSocket pour votre référence. Le contenu spécifique est le suivant
1.TcpServer.java
import java.net. *; import java.io. *; import java.util. *; import java.util.concurrent. *; public class tcpSserver {private static final int serverport = 8888; privé serversocket myserver = null; Liste privée <Socket> Clients = new ArrayList <Socket> (); EXIMPROCORSERVICE privé MEXECUTORSERVICE; public tcpServer () {try {myServer = new serversocket (serverport); MEXECUTORSERVICE = EMICATORS.NEWCACHEDTHREADPOOL (); System.out.println ("start:"); Socket mysocket = null; while (true) {mysocket = myServer.Accept (); CLIENTS.ADD (MySocket); MEXECUTORSERVICE.Execute (nouveau ThreadServer (MySocket)); }} catch (exception e) {e.printStackTrace (); System.exit (0); }} classe ThreadServer implémente Runnable {private socket msocket = null; BufferedReader privé dans = null; privé Printwriter out = null; chaîne privée mStrmsg = null; public threadServer (socket socket) {try {this.msocket = socket; dans = new BufferedReader (new inputStreamReader (mssocket.getInputStream (), "gb2312")); mStrmsg = "User:" + msocket.getInEtAddress () + "Come Total:" + Clients.size (); SendMassage (); } catch (ioException e) {System.out.println ("errorr"); System.exit (0); }} private void SendMassage () {try {System.out.println (mStrmsg); for (socket mysocket: clients) {out = new PrintWriter (new OutputStreamWriter (mysocket.getOutputStream (), "gb2312"), true); Out.println (MSTRMSG); }} catch (ioException e) {System.out.println ("errorr"); System.exit (0); }} public void run () {try {while ((mStrmsg = in.readline ())! = null) {if (mStrmsg.trim (). equals ("exit")) {clients.Remove (msocket); joindre(); out.close (); mStrmsg = "User:" + msocket.getInEtAddress () + "Exit Taxal:" + Clients.size (); ; msocket.close (); SendMassage (); casser; } else {mStrmsg = msocket.getinetAddress () + ":" + mStrmsg; SendMassage (); }}} catch (ioException e) {System.out.println ("errorr"); System.exit (0); }}} public static void main (String [] args) {new tcpServer (); }} 2.tcpclient.java
import java.net. *; import java.io. *; import java.util.concurrent. *; public class tcpClient {private static final int port = 8888; Client de socket privé = null; BufferedReader privé Sin = null; EXIMPROCORSERVICE privé MEXECUTORSERVICE; public tcpClient () {try {client = new socket ("120.27.126.174", port); sin = new BufferedReader (new inputStreamReader (client.getInputStream (), "gb2312")); MEXECUTORSERVICE = EMICATORS.NEWCACHEDTHREADPOOL (); MEXECUTORSERVICE.EXECUTE (nouveau ThreadClient (client)); String msg = null; while ((msg = sin.readline ())! = null) {System.out.println (msg); }} catch (ioException e) {System.out.println (e.getMessage ()); }} classe ThreadClient étend Thread {private socket msocket = null; chaîne privée msg = null; BufferedReader dans = 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 (). equals ("exit")) {in.close (); out.close (); MEXECUTORSERVICE.SHUTDOWNNOW (); casser; }}} catch (ioException e) {System.out.println ("See You"); System.exit (0); }}} public static void main (String [] args) {new tcpClient (); }}Ce qui précède est le code pour Java pour implémenter la fonction de salle de chat TCPSocket. J'espère que cela sera utile à l'apprentissage de tous.