⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server5.java

📁 介绍java的网络编程
💻 JAVA
字号:
import java.net.*;
import java.io.*;
import java.util.*;
public class Server5{
  private ServerSocket server;
  private BManager bMan=new BManager();
  public Server5(){}
  void startServer(){
    try{
      server=new ServerSocket(7777);
      System.out.println("辑滚家南捞 积己登菌嚼聪促.");
      while(true){
        Socket socket=server.accept();
        new Chat_Thread(socket).start();
        bMan.add(socket);
        bMan.sendClientInfo();
      }
    }catch(Exception e){
      System.out.println(e); 
    }
  }
  public static void main(String[] args){
    Server5 server=new Server5();
    server.startServer();
  }
  class Chat_Thread extends Thread{
    Socket socket;
    private BufferedReader reader;
    private PrintWriter writer;
    Chat_Thread(Socket socket){
      this.socket=socket;
    }
    public void run(){
      try{
        reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
        writer=new PrintWriter(socket.getOutputStream(), true);
        String msg;
        while((msg=reader.readLine())!=null){
          System.out.println(msg);
          bMan.sendToAll(msg);
        }
      }catch(Exception e){
      }finally{
        try{
          bMan.remove(socket);
          if(reader!=null) reader.close();
          if(writer!=null) writer.close();
          if(socket!=null) socket.close();
          reader=null; writer=null; socket=null;
          System.out.println("努扼捞攫飘啊 唱艾嚼聪促.");
          bMan.sendClientInfo();
        }catch(Exception e){}
      }
    }
  }
  class BManager extends Vector{
    BManager(){}
    void add(Socket sock){
      super.add(sock);
    }
    void remove(Socket sock){
      super.remove(sock);
    }
    synchronized void sendToAll(String msg){
      PrintWriter writer=null;
      Socket sock;
      for(int i=0; i<size(); i++){
        sock=(Socket)elementAt(i);
        try{
          writer=new PrintWriter(sock.getOutputStream(), true);
        }catch(IOException ie){}
        if(writer!=null)writer.println(msg);
      }  
    }
    synchronized void sendClientInfo(){
      String info="泅犁 盲泼 牢盔: "+size();
      System.out.println(info);
      sendToAll(info);
    }  
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -