激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - JAVA教程 - java實現一個簡單TCPSocket聊天室功能分享

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

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

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

本文實例為大家分享了java實現TCPSocket聊天室功能的相關代碼,供大家參考,具體內容如下

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實現TCPSocket聊天室功能的代碼,希望對大家的學習有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕欧美亚洲 | 亚洲天堂第一页 | 免费毛片电影 | 久久久久久久亚洲精品 | 羞羞羞羞视频 | 毛片区 | 国产91九色视频 | 高清成人在线 | 免费在线观看午夜视频 | 欧美成人免费 | 久久免费综合视频 | h视频在线免费观看 | 久久久久久久久久久久久久av | 色678黄网站全部免费 | 欧洲成人综合网 | 国产91久久精品一区二区 | 日本精品久久久久 | 午夜在线观看视频网站 | 亚洲精品欧美在线 | 国产精品免费小视频 | 在线亚洲综合 | 91免费影院 | 欧美人xx | aa国产视频一区二区 | 在线看免费观看av | 国产精品高潮99久久久久久久 | 泰剧19禁啪啪无遮挡大尺度 | chengrenzaixian | 福利在线免费视频 | 国产99久久久久久免费看 | 亚洲码无人客一区二区三区 | 三级18视频 | 免费黄色在线观看网站 | 91九色精品 | 免费国产自久久久久三四区久久 | 国产免费人做人爱午夜视频 | 日韩精品一二三区 | 看国产精品 | 中文字幕亚洲情99在线 | 在线观看精品视频 | 成人aaaaa片毛片按摩 |