Este artigo compartilha o código específico da função da sala de bate -papo Java Socket para sua referência. O conteúdo específico é o seguinte
Client.java
importar java.io.*; importar java.net.*; importar java.util.*; public class cliente {public int porta = 8083; Soquete soquete = nulo; public static void main (string [] args) {new client (); // Iniciar a execução} public client () {try {socket = new Socket ("127.0.0.1", porta); new cthread (). start (); BUBLEREDRADER BR = new BufferredReader (novo InputStreamReader (Socket.getInputStream ())); String msg1; while ((msg1 = b.readline ())! = null) {System.out.println (msg1); }} Catch (Exceção e) {}} classe CTHREAD EXTENDENS {public void run () {try {bufferredReader re = new BufferredReader (new InputStreamReader (System.in)); PrintWriter PW = new PrintWriter (Socket.getOutputStream (), true); String msg2; while (true) {msg2 = re.readline (); pw.println (msg2); }} catch (Exceção e) {e.printStackTrace (); }}}}Server.java
importar java.net.*; importar java.io.*; importar java.util.*; Public Class Server {int porta; List <socket> clientes; Serversocket Server; public server () {tente {porta = 8083; clientes = novo ArrayList <Socket> (); Server = new ServerSocket (porta); System.out.println ("servidor iniciado"); int co = 1; while (true) {soquete soquete = server.accept (); clientes.add (soquete); Mythread mythread = new mythread (soquete, CO); co ++; mythread.start (); }} catch (Exceção ex) {System.out.println ("vv"); }} public static void main (string [] args) {new server (); } classe mythread estende o thread {socket ssocket; Parte INT privada; Private BufferReader BR; Printwriter privado PW; public string msg; mythread público (soquete s, int c) {ssocket = s; contagem = c; } public void run () {try {Br = new BufferredReader (new InputStreamReader (ssocket.getInputStream ())); msg = "Welcome [" + "Client" + count + "] na sala de bate -papo! A sala de bate -papo atual possui [" + clients.size () + "] pessoas"; sendmsg (); while ((msg = Br.readline ())! = null) {msg = "【" + "client" + count + "] diga:" + msg; sendmsg (); }} catch (Exceção ex) {}} public void sendmsg () {try {System.out.println (msg); para (int i = clients.size ()-1; i> = 0; i-) {pw = new PrintWriter (clients.get (i) .getOutputStream (), true); pw.println (msg); pw.flush (); }} catch (Exceção ex) {}}}}Resultados em execução:
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.