Эта статья разделяет соответствующий код для Java для реализации функции чата TCPSocket для вашей ссылки. Конкретный контент заключается в следующем
1.tcpserver.java
Импорт java.net.*; импортировать java.io.*; import java.util.*; import java.util.concurrent.*; public class tcpserver {private static final int serverport = 8888; private serversocket myserver = null; Частный список <Socket> clients = new ArrayList <Socket> (); Частный исполнитель MexeCutorService; public tcpserver () {try {myserver = new Serversocket (ServerPort); mexecutorservice = executors.newcachedthreadpool (); System.out.println ("start:"); Сокет mysocket = null; while (true) {mysocket = myserver.accept (); Clients.add (mysocket); mexecutorservice.execute (новый Threadserver (MySocket)); }} catch (Exception e) {e.printstackTrace (); System.Exit (0); }} класс Threadserver реализует runnable {private сокет msocket = null; Private BufferedReader in = null; Private PrintWriter Out = null; Приватная строка mStrmsg = null; public Threadserver (сокет сокета) {try {this.mssocket = socket; in = new BufferedReader (New InputStreamReader (mssocket.getInputStream (), "GB2312")); MSTRMSG = "user:" + msocket.getInetAddress () + "come:" + clients.size (); Sendmassage (); } catch (ioException e) {System.out.println ("erorr"); System.Exit (0); }} private void sendmassage () {try {System.out.println (mstrmsg); Для (сокет MySocket: клиенты) {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")) {clients.remove (msocket); in.close (); out.close (); MSTRMSG = "user:" + msocket.getInetAddress () + "exit Taxal:" + clients.size (); ; msocket.close (); Sendmassage (); перерыв; } 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
Импорт java.net.*; импортировать java.io.*; import java.util.concurrent.*; открытый класс tcpclient {private static final int port = 8888; Private Socket Client = null; Частный буферный читатель sin = null; Частный исполнитель MexeCutorService; public tcpclient () {try {client = new Socket ("120.27.126.174", port); sin = new BufferedReader (новый inputStreamReader (client.getInputStream (), "GB2312")); mexecutorservice = executors.newcachedthreadpool (); mexecutorservice.execute (new ThreadClient (клиент)); String msg = null; while ((msg = sin.readline ())! = null) {System.out.println (msg); }} catch (ioException e) {System.out.println (e.getMessage ()); }} класс ThreadClient Extends Thread {Private Socket MSOCKET = NULL; Приватная строка msg = null; BufferedReader in = null; Printwriter Out = null; public ThreadClient (сокет сокета) {this.msocket = сокет; } public void run () {try {in = new BufferedReader (new InputStreamReader (System.in)); out = new PrintWriter (новый outputStreamWriter (msocket.getOutputStream (), "GB2312"), true); while (true) {msg = in.readline (); out.println (msg); if (msg.trim (). equals ("exit")) {in.close (); out.close (); mexecutorservice.shutdownnow (); перерыв; }}} catch (ioException e) {System.out.println ("Смотрите"); System.Exit (0); }}} public static void main (string [] args) {new tcpClient (); }}Выше приведено код для Java для реализации функции чата TCPSocke. Я надеюсь, что это будет полезно для каждого обучения.