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

📄 chatroomserver.java

📁 用Java编写的基于Socket的聊天室小程序!
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

public class ChatRoomServer extends Frame implements Runnable{
 Panel panel;
 ScrollPane sPanel;
 TextArea textArea;
 Button button1;


 ServerSocket serverSock;
 public final static int DEFAULT_PORT=6666;
 Thread chatAcceptThread;
 BroadcastThread broadcastThread;
 java.util.Vector clients;
 java.util.Vector clientsInfor;
 public static int index=0;

 public ChatRoomServer(){
  try{
   jbInit();
  }catch(Exception e){
   e.printStackTrace();
  }
  serverListen();
 }

 private void jbInit(){
 panel=new Panel();
  sPanel=new ScrollPane();
  textArea=new TextArea("server information:\n");
  button1=new Button("退出");

  sPanel.add(textArea);

  button1.addActionListener(new java.awt.event.ActionListener(){
   public void actionPerformed(ActionEvent e){
    button1_actionPerformed(e);
   }
  });
  panel.add(button1);

  this.addWindowListener(new ChatFrame_WindowAdapter());
  this.setSize(600,600);
  this.setLayout(new BorderLayout());
  this.add(sPanel,BorderLayout.CENTER);
  this.add(panel,BorderLayout.SOUTH);
  this.show();
}

 private void button1_actionPerformed(ActionEvent e){
  exit();
 }
 public void exit(){
  broadcastThread.broadcast("Server exit!");
  try{
   serverSock.close();
  }catch(IOException ioe){}
  finally{
   System.exit(0);
  }
 }

 public void processMsg(String str){
  textArea.append(str);
 }

 private void serverListen(){
  try{
   serverSock=new ServerSocket(DEFAULT_PORT);
  }catch(IOException e){
   processMsg(e.toString());
   processMsg("server failed!\n");
  }
  processMsg("server listening on port:"+DEFAULT_PORT);
  clients=new java.util.Vector();
  clientsInfor=new java.util.Vector();

  chatAcceptThread=new Thread(this);
  chatAcceptThread.start();

  broadcastThread=new BroadcastThread(this);
  broadcastThread.start();
 }

 public void run(){
  int i=0;
  try{
   while(true){
    Socket clientSock=serverSock.accept();
    CommunicateThread ct=new CommunicateThread(clientSock,this,index);
    clients.add(ct)
    i++;
    index++;
    clientsInfor.add("Client-"+i);
    processMsg("Client-"+i+"join in\n");

   }
  }catch(IOException e){
   processMsg(e.toString());
  }
 }

 public static void main(String[] args){
  ChatRoomServer chat=new ChatRoomServer();
 }
}

⌨️ 快捷键说明

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