国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java實現一個簡單TCPSocket聊天室功能分享

2019-11-26 14:26:10
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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;  private ServerSocket MyServer = null;  private List<Socket> Clients = new ArrayList<Socket>();  private ExecutorService mExecutorService;  public TCPserver(){    try{      MyServer = new ServerSocket(SERVERPORT);      mExecutorService = Executors.newCachedThreadPool();       System.out.println("start:");      Socket MySocket = null;      while(true){      MySocket = MyServer.accept();      Clients.add(MySocket);      mExecutorService.execute(new ThreadServer(MySocket));       }    }catch(Exception e){        e.printStackTrace();         System.exit(0);      }  }  class ThreadServer implements Runnable{    private Socket msocket=null;    private BufferedReader in= null;    private PrintWriter out = null;    private String mStrMSG = null;     public ThreadServer(Socket socket) {      try{            this.msocket=socket;      in = new BufferedReader(new InputStreamReader(msocket.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: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);            in.close();            out.close();            mStrMSG = "user:" + msocket.getInetAddress() + " exit tatal:" + Clients.size();            ;            msocket.close();            SendMassage();                       break;           }           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;  private Socket Client = null;  private BufferedReader sin = null;  private ExecutorService mExecutorService;  public TCPclient(){    try{      Client = new Socket("120.27.126.174",PORT);    sin = new BufferedReader(new InputStreamReader(Client.getInputStream(),"GB2312"));    mExecutorService = Executors.newCachedThreadPool();    mExecutorService.execute(new ThreadClient(Client));     String msg = null;   while((msg = sin.readLine()) != null) {         System.out.println(msg);       }     }catch(IOException e){           System.out.println(e.getMessage());         }       }  class ThreadClient extends Thread{    private Socket mSocket = null;    private String msg = null;    BufferedReader in = 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();                    break;            }          }        }catch(IOException e){          System.out.println("see you");          System.exit(0);        }      }  }  public static void main(String[] args){    new TCPclient();  }}

以上就是java實現TCPSocket聊天室功能的代碼,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会泽县| 长阳| 逊克县| 宜阳县| 莆田市| 莎车县| 合水县| 科技| 闽侯县| 武夷山市| 德州市| 开阳县| 天柱县| 孝义市| 博野县| 深圳市| 沙洋县| 宁武县| 南漳县| 保靖县| 巴林右旗| 孟连| 云浮市| 中山市| 吉木萨尔县| 抚顺县| 晋江市| 瑞金市| 淅川县| 达州市| 天津市| 敦煌市| 海南省| 平江县| 白银市| 错那县| 车险| 石林| 宁明县| 嘉善县| 衢州市|