一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java實現(xiàn)一個簡單TCPSocket聊天室功能分享

java實現(xiàn)一個簡單TCPSocket聊天室功能分享

2020-04-18 12:10小小小丑 JAVA教程

這篇文章主要為大家分享了java實現(xiàn)的一個簡單TCPSocket聊天室功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java實現(xiàn)TCPSocket聊天室功能的相關(guān)代碼,供大家參考,具體內(nèi)容如下

1.TCPserver.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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實現(xiàn)TCPSocket聊天室功能的代碼,希望對大家的學(xué)習(xí)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本艳鉧动漫1~6在线观看 | 色综合网天天综合色中文男男 | 欧美人妖大啪啪 | 人人人人看人人人做人人 | 四虎免费永久观看 | 九九在线免费视频 | japanesqirl日本护士 | 红色毛片 | 日本人做受全过程视频 | 成人伊人亚洲人综合网站222 | 成人国产精品一级毛片视频 | bl双性受乖调教改造身体 | 国产香蕉97碰碰久久人人 | 黄瓜污视频 | 网站色小妹 | 亚洲男gay | 狠狠撸在线影院 | 女仆掀起蕾丝裙被打屁股作文 | 久久精品成人免费看 | 白丝萝莉喷水 | 欧美va天堂va视频va在线 | 午夜国产精品视频 | 成人国产网站v片免费观看 成人国产精品视频 | 国产图色 | 四虎最新永久免费网址 | 国产欧美日韩图片一区二区 | 天天夜夜啦啦啦 | 欧美兽皇video | 青青久久精品国产免费看 | 性色香蕉AV久久久天天网 | 青青草色| 亚洲欧美色综合图小说 | 亚洲AV午夜福利精品香蕉麻豆 | 俄罗斯一级淫片 | 农村脱精光一级 | 午夜福到在线4国产 | 草久热| 男人和女人全黄一级毛片 | 亚洲国产综合另类视频 | 干美女在线视频 | 四虎影院永久在线 |