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

📄 serverthread.java

📁 java多人版服务器
💻 JAVA
字号:
package serverframe;import java.io.*;import java.awt.*;import java.net.*;import java.util.*;import java.awt.event.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2006</p> * <p>Company: </p> * @author not attributable * @version 1.0 */import javax.swing.*;class ServerThread extends Thread{   int          sPort;   ServerSocket sSocket;   ServerFrame  frame;   JTextArea     sStatus;   Vector       Clients;//一可变动数组用来存储客户端线程   Vector       messages;//存储客户端消息   Vector       system;   BroadCast        BroadCastWriter;//广播线程   CleanDeadConnect Cleaner;//清除不可用的线程   public ServerThread(ServerFrame f)   {      Clients  = new Vector();//实例化Vctor      messages = new Vector();      system=new Vector();      try      {         sPort   = 7000;         sSocket = new ServerSocket(sPort);//建立服务器端口,服务器将在此端口监听      }      catch(IOException E)      {         System.out.println("发生例外: " + E);         System.out.println("无法建立服务器端口!!");         System.exit(1);      }      this.frame = f;      sStatus    = frame.ServerStatus;//让窗体的文本显示处是在同一地方;该处的文本显示处和serverframe是同一地方      sStatus.append("游戏服务器已启动..\n\n");      sStatus.append(">>>>>等待连线<<<<<\n\n");      BroadCastWriter = new BroadCast(this);      BroadCastWriter.start();//开启广播线程      Cleaner = new CleanDeadConnect(this);      Cleaner.start();//开启清除不可用线程   }   public void run()   {      while(true)      {         try         {            Socket cSocket       = sSocket.accept();//监听客户机是否连机            ClientThread cThread = new ClientThread(cSocket,this);//实例化clientthread            cThread.start();//如果连机就开启一线程来处理该客户机            sStatus.append(cThread.getClientName() + ":");            sStatus.append(cThread.getClientAddress() + "已连线 ");            sStatus.append("目前连线数: " + ClientThread.ConnectNumber +"\n");//显示连机状态            synchronized(Clients)//琐住内存防止出错            {               Clients.addElement(cThread);//把cThread加入Clients中并把clients尾,并把clients加一            }         }         catch(IOException E)         {            System.out.println("发生例外: " + E);            System.out.println("建立客户端连线失败!");            System.exit(2);         }      }   }   public void finalize()//关闭该sSocket   {      try      {         sSocket.close();      }      catch(IOException E){}      sSocket = null;   }}

⌨️ 快捷键说明

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