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

📄 serverrev.java

📁 一个JAVA选人界面
💻 JAVA
字号:
import java.net.*;
import java.io.*;
import java.util.*;
///这是一个服务器的程序
///server1是一个服务器的套接字对象
///bman是一个Vector数据结构的类,它是用来存储聊天记录的。
///startserver是一个创建服务器套接字对象。并且发送消息的方法
/// chat_thread是一个聊天的线程类
///sendclientinfo是一个回送客户端信息的方法
public class serverrev
{
 private ServerSocket server1;
 private bmanager bman=new bmanager();
 public serverrev(){}
 void startserver()
 {
  try
  {
    server1=new ServerSocket(6000);
    System.out.println("服务器套接字创建完毕");
    while(true)
    {
      Socket socket1=server1.accept();
      new chat_thread(socket1).start();
      bman.add(socket1);
      bman.sendclientinfo();
    }
  }
  catch(Exception e)
  {
    System.out.println(e);
  }
 }
 public static void main(String[] args)
 {
  serverrev server=new serverrev();
  server.startserver();
 }
class chat_thread extends Thread 
{
  Socket socket1;
  private BufferedReader reader1;
  private PrintWriter writer1;
  chat_thread(Socket socket1)
  {
    this.socket1=socket1;
  }
  public void run()
  {
    try
    {
      reader1=new BufferedReader(new InputStreamReader(socket1.getInputStream()));
      writer1=new PrintWriter(socket1.getOutputStream(),true);
      String info;
      while((info=reader1.readLine())!=null)
      System.out.println(info);
      bman.sendtoall(info);
    }
    catch(Exception e){}
    finally 
    {
      try
      {
        bman.remove(socket1);
        if(reader1!=null) reader1.close();
        if(writer1!=null) writer1.close();
        if(socket1!=null) socket1.close();
        System.out.println("客户机离开了");
        bman.sendclientinfo();
      }
      catch(Exception e){}
    }
  }
}
class bmanager extends Vector
{
  void add(Socket socket1)
  {
    super.add(socket1);
  }
  void remove(Socket socket1)
  {
    super.remove(socket1);
  }
synchronized void sendtoall(String info)
{
  PrintWriter writer1=null;
  Socket socket1;
  for(int i=0;i<size();i++)
  {
    socket1=(Socket)elementAt(i);
    try
    {
      writer1=new PrintWriter(socket1.getOutputStream(),true);
    }
    catch(Exception e){}
    if(writer1!=null)
    writer1.println(info);
  }
}
synchronized void sendclientinfo()
{
  String info=" 当前聊天人数:"+size();
  System.out.println(info);
  sendtoall(info);
}
}
}

⌨️ 快捷键说明

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