이 기사에서는 Java가 참조 할 TCPSOCKET 채팅실 기능을 구현할 관련 코드를 공유합니다. 특정 내용은 다음과 같습니다
1.tcpserver.java
import java.net.*; import java.io.*; import java.util.*; import java.util.concurrent.*; public class tcpserver {private static final int serverport = 8888; 개인 서버 스켓 MyServer = NULL; 개인 목록 <Socket> 클라이언트 = New ArrayList <Socket> (); 개인 executorService mexecutorservice; public tcpserver () {try {myserver = new serversocket (serverport); mexecutorservice = executors.newCachedThreadPool (); System.out.println ( "시작 :"); 소켓 mysocket = null; while (true) {mysocket = myserver.accept (); clients.add (mysocket); mexecutorservice.execute (New ThreadServer (mySocket)); }} catch (예외 e) {e.printstacktrace (); System.exit (0); }} Class STHREADSERVER는 실행 가능 {private socket msocket = null; 개인 버퍼드 리더 in = null; 개인 프린트 라이터 out = null; 개인 문자열 mstrmsg = null; public stroodserver (소켓 소켓) {try {this.mssocket = socket; in = new bufferedReader (new inputStreamReader (mssocket.getInputStream (), "GB2312"); mstrmsg = "user :" + msocket.getInetAddress () + "총 :" + clients.size (); sendmassage (); } catch (ioexception e) {System.out.println ( "erorr"); 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 ( "erorr"); System.exit (0); }} public void run () {try {while ((mstrmsg = in.readline ())! = null) {if (mstrmsg.trim (). equals ( "exit")) {clients.remove (msocket); 넣다(); 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
import java.net.*; import java.io.*; import java.util.concurrent.*; public class tcpclient {private static final int port = 8888; 개인 소켓 클라이언트 = NULL; private bufferedReader sin = null; 개인 executorService mexecutorservice; public tcpclient () {try {client = new Socket ( "120.27.126.174", 포트); sin = new bufferedReader (new inputStreamReader (client.getInputStream (), "gb2312"); mexecutorservice = executors.newCachedThreadPool (); mexecutorservice.execute (new ThreadClient (client)); 문자열 msg = null; while ((msg = sin.readline ())! = null) {system.out.println (msg); }} catch (ioexception e) {System.out.println (e.getMessage ()); }} Class ThreadClient는 스레드 {private socket msocket = null; 개인 문자열 msg = null; 버퍼드 리더 in = null; printwriter out = null; 공개 스레드 클라이언트 (소켓 소켓) {this.msocket = 소켓; } 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 (); 부서지다; }}} catch (ioexception e) {System.out.println ( "보자"); System.exit (0); }}} public static void main (String [] args) {new tcpclient (); }}위는 Java가 TCPSOCKET 채팅실 기능을 구현할 수있는 코드입니다. 모든 사람의 학습에 도움이되기를 바랍니다.