亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chatserver.java

?? 電子白板代碼(JAVA).
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
import java.net.*;
import java.io.*;
import java.awt.*;
import java.util.*;
import java.applet.*;


// class 1:server main class,服務器啟動類
public class ChatServer extends Frame {

 final static int DEFAULT_USERCOUNT=30;
 final static int DEFAULT_PORT=10000;
 final static String ICON_FILE="icon.gif";
 int num_Line=0;
 User[] users=null;
 ServerSocket ss=null;
 RoomGroup roomGroup=null;
 int port=DEFAULT_PORT;
 Image icon=null;

 java.awt.TextArea message_TextArea;
	java.awt.List users_List;
	java.awt.Choice room_Choice;
	java.awt.Label message_Label;
	java.awt.Label room_Label;
	java.awt.Label userList_Label;
 java.awt.Button clean_Button;

 java.awt.MenuBar mainMenuBar;
 java.awt.Menu menu1;
 java.awt.Menu menu3;

 void initServer(int port) throws IOException {
  users=new User[ChatServer.DEFAULT_USERCOUNT];
roomGroup=new RoomGroup
   (ChatServer.DEFAULT_USERCOUNT,room_Choice,
        this);
  try{
   ss=new ServerSocket(port,5);
   message_TextArea.appendText
    ("\nserver socket init successed");

  }catch(Exception e){
   System.out.println(e);
   message_TextArea.appendText
     ("\nserver socket init error"+e);
  }
  for(int i=0;i< users.length;i++) {
   users[i]=new User(this,i);
  }
  roomGroup.setUsers(users);
  show();
	 go();
  message_TextArea.appendText("\nserver started");

 }

 ChatServer(int port) throws IOException {

  icon=getToolkit().getImage(ICON_FILE);
  MediaTracker tracker = new MediaTracker(this);
  tracker.addImage(icon,0);
  try{
   tracker.waitForAll();
  }catch(Exception e){
   System.out.println(e);
  }
   //{{INIT_CONTROLS
		setLayout(null);
		addNotify();
		resize(insets().left + insets().right + 544,insets().top 
     + insets().bottom + 355);
		//$$ openFileDialog1.move(36,276);
		setTitle("Chat & WhiteBoard Server 1.0");
		setIconImage(icon);
  //}}

  message_TextArea = new java.awt.TextArea();
		message_TextArea.reshape(insets().left + 12, 
      insets().top + 36,396,240);
		add(message_TextArea);
		users_List = new java.awt.List(5,false);
		add(users_List);
		users_List.reshape(insets().left + 432,insets().top 
       + 144,76,110);
		room_Choice = new java.awt.Choice();
		add(room_Choice);
		room_Choice.reshape(insets().left + 420,insets().top
     + 60,100,1);
		message_Label = new java.awt.Label("message");
		message_Label.reshape(insets().left + 36,insets().top
     + 12,100,24);
		add(message_Label);
		room_Label = new java.awt.Label("Chat room");
		room_Label.reshape(insets().left + 420,insets().top 
      + 14,100,24);
		add(room_Label);
		userList_Label = new java.awt.Label("user List");
		userList_Label.reshape(insets().left + 420,insets().top
      + 108,100,28);
		add(userList_Label);
		clean_Button = new java.awt.Button("clean");
		clean_Button.reshape(insets().left + 180,insets().top
      + 12,60,24);
		add(clean_Button);
		

		//{{INIT_MENUS
		mainMenuBar = new java.awt.MenuBar();

		menu1 = new java.awt.Menu("File");
		menu1.add("Restart");
		menu1.add("Exit");
  mainMenuBar.add(menu1);


		menu3 = new java.awt.Menu("Help");
		mainMenuBar.setHelpMenu(menu3);
		menu3.add("About");
		mainMenuBar.add(menu3);
		setMenuBar(mainMenuBar);
		//$$ mainMenuBar.move(4,277);


  this.port=port;
  initServer(port);


 }// constructor 1 ended

 ChatServer() throws IOException{
  this(ChatServer.DEFAULT_PORT);
 }// contructor 2 ended
 
 void cleanButton_Clicked(Event event) {


		//{{CONNECTION
		// Hide the Frame
		message_TextArea.setText("");
		//}}
	}
 void About_Action(Event event) {
		//{{CONNECTION
		// Action from About Create and show as modal
		(new AboutDialog(this, true)).show();
		//}}
 }

 void Exit_Action(Event event) {
		//{{CONNECTION
		// Action from Exit Create and show as modal
		(new QuitDialog(this, true)).show();
		//}}
 }

 void Restart_Action(Event e) {
  try{
   quit();
   initServer(port);
  }catch(Exception e1){
   message_TextArea.appendText("\ninit server error");
  }
 }

 public synchronized void show() {
  	move(50, 50);

  	super.show();
 }
	
 void roomChoice_Action(Event e) {

  String roomName=null;
  int roomID=0;

  users_List.clear();
  roomName=room_Choice.getSelectedItem();
  roomID=roomGroup.getRoomID(roomName);
  for(int i=0;i< users.length;i++) {
   if ((users[i].logged)&&(users[i].belongRoom)
     &&(users[i].roomID==roomID)) {
     users_List.addItem(users[i].name);
   }
  }
 }


 public boolean handleEvent(Event event) {
  	if (event.id == Event.WINDOW_DESTROY) {
      quit();
      hide();     // hide the Frame
      dispose();   // free the system resources
      System.exit(0); // close the application
      return true;
  	}
   if (event.target == room_Choice && event.id
       == Event.ACTION_EVENT) {
			roomChoice_Action(event);
			return true;
		 }
   if (event.target == clean_Button && event.id
     == Event.ACTION_EVENT) {
			cleanButton_Clicked(event);
   return true;
   }
	
		return super.handleEvent(event);
 }

 public boolean action(Event event, Object arg) {
		if (event.target instanceof MenuItem) {
			String label = (String) arg;
			if (label.equalsIgnoreCase("About")) {
				About_Action(event);
				return true;
			} else
				if (label.equalsIgnoreCase("Exit")) {
					Exit_Action(event);
					return true;
			} else
				if (label.equalsIgnoreCase("Restart")) {
					Restart_Action(event);
					return true;
			}
		}
		return super.action(event, arg);
 }

 public static void main(String args[]) {

	 try{
   ChatServer chatServer=new ChatServer();
	  }catch(Exception e){
   System.out.println(e);
  }
 }


 public void go() {
  for(int i=0;i< users.length;i++) {
   users[i].start();
  }
 }// method 'go' ended

 public void quit() {
  for(int i=0;i< users.length;i++) {
   if (users[i]!=null) users[i].destroy();
  }
  try{
    ss.close();
    ss=null;
    room_Choice.removeAll();
    users_List.clear();
    message_TextArea.appendText
      ("\nserver socket closed");

  }catch(IOException e){
    System.out.println(e);
  }
 }// method 'quit' ended

} // class 'ChatServer' ended


//class 2:RoomGroup,服務器用的交談室數(shù)據(jù)類
class RoomGroup {

 Room[] rooms=null;
 final static String DEFAULT_ROOM_SUBJECT="默認";
 final static int DEFAULT_ROOM_ID=0;
 Choice room_Choice=null;
 java.util.List users_List=null;
 User[] users=null;
 ChatServer chatServer=null;

 RoomGroup(int roomCount,Choice room_Choice,
      ChatServer chatServer) {
  this.chatServer=chatServer;
  this.room_Choice=room_Choice;
  this.users=users;
  this.users_List=users_List;
  rooms=new Room[roomCount];
  try{
   newRoom(DEFAULT_ROOM_SUBJECT);
  }catch(Exception e){
   System.out.println(e);
  }
 }// contructor 1 ended

 void setUsers(User[] users) {
  this.users=users;
 }

 void refreshList() {
chatServer.handleEvent(new Event(this, 
    Event.ACTION_EVENT, null));
 }

 public int getRoomID(String roomName){
  for(int i=0;i< rooms.length;i++) {
   if ((rooms[i]!=null)&&(rooms[i].getRoomName().equals
        (roomName))) {
    return i;
   }
  }
  return 0;

 }// method 'getRoomID' ended

 public int newRoom(String subject) throws
    TooManyRoomsException {
  int i=0;
  while((i< rooms.length)&&(rooms[i]!=null)) {
   i++;
  }
  if (i< rooms.length) {
   rooms[i]=new Room(subject,i);
   room_Choice.addItem(subject);
   room_Choice.repaint();
   return i;
  }else {
   throw new TooManyRoomsException();
  }
 } // method 'newRoom' ended

 public void join(int roomID,User user) throws
    NoSuchRoomException {
  try{
   rooms[roomID].join(user);
   room_Choice.select(getRoomName(roomID));
   refreshList();
  }catch(ArrayIndexOutOfBoundsException e){
   throw new NoSuchRoomException();
  }catch(NullPointerException e) {
   throw new NoSuchRoomException();
  }
 } // method 'join' ended

 public void quit(int roomID,User user) throws
    NoSuchRoomException {
  try{
   try{
    rooms[roomID].quit(user);
    room_Choice.select(getRoomName(roomID));
    refreshList();

   }catch(NotMemberException e){
   }finally{
    if ((rooms[roomID].getUserCount()==0)&&
      (roomID!=DEFAULT_ROOM_ID)) {
     room_Choice.remove(rooms[roomID].getRoomName());
     rooms[roomID]=null;
    }
   }
  }catch(ArrayIndexOutOfBoundsException e){
   throw new NoSuchRoomException();
  }catch(NullPointerException e) {
   throw new NoSuchRoomException();
  }
 } // method 'quit' ended

 public String[] getUsersName(int roomID) throws
    NoSuchRoomException {
  try{
   if (rooms[roomID]!=null)
    return rooms[roomID].getUsersName();
    else return null;
  }catch(ArrayIndexOutOfBoundsException e) {
   throw new NoSuchRoomException();
  }
 } // method 'getUsersName' ended

 public int getUserCount(int roomID) throws 
     NoSuchRoomException {
  try{
   return rooms[roomID].getUserCount();
  }catch(ArrayIndexOutOfBoundsException e) {
   throw new NoSuchRoomException();
  }catch(NullPointerException e) {
   throw new NoSuchRoomException();
  }
 } // method 'getUserCount' ended

 public String getRoomName(int roomID) throws
    NoSuchRoomException {
  try{
   return rooms[roomID].getRoomName();
  }catch(ArrayIndexOutOfBoundsException e) {
   throw new NoSuchRoomException();
  }catch(NullPointerException e) {
   throw new NoSuchRoomException();
  }
 } // method 'getRoomName' ended

 public boolean isActive(int roomID) throws
     NoSuchRoomException {
  try{
   if (rooms[roomID]!=null)
    return true;
    else return false;
  }catch(ArrayIndexOutOfBoundsException e) {
   throw new NoSuchRoomException();
  }
 }//method 'isActive' ended

 public int roomCount() {
  return rooms.length;
 } //method 'roomCount' ended

} // class 'RoomGroup' ended

// class 3:'Room',RoomGroup引用的數(shù)據(jù)類
class Room {

 String subject=null;
 int ID=0;
 Vector users=null;

 Room(String s,int ID) {
  subject=s;
  this.ID=ID;
  users=new Vector(10,5);

 }// constructor 1 ended

 public void join(User user) {
  users.addElement(user);
  user.roomID=ID;
  user.paused=false;
 }// method 'join' ended

 public void quit(User user) throws
      NotMemberException {
  if (users.contains(user)) {
   users.removeElement(user);
  }else
   throw new NotMemberException();
 }// method 'quit' ended

 public String[] getUsersName() {

  String[] usersName=null;

  if (users.size()!=0) {
   usersName=new String[users.size()];
   for(int i=0;i< usersName.length;i++) {
    usersName[i]=((User)(users.elementAt(i))).name;
   }
   return usersName;
  }else {
   return null;
  }
 }
 // method 'getUsersName' ended

 public String getRoomName() {
  return subject;
 }// method 'getRoomName' ended

 public int getUserCount() {
  return users.size();
 }// method 'getUserCount' ended

} // class 'Room' ended

//class 4:'User',服務器引用的用戶服務線程類
class User extends Thread {

 String name=null;
 int ID=0;
 boolean paused=false;
 boolean used=false;
 boolean belongRoom=false;
 boolean logged=false;
 DataInputStream io_in=null;
 DataOutputStream io_out=null;
 int roomID=0;
 ServerSocket ss=null;
 Socket s=null;
 User[] users=null;
 RoomGroup roomGroup=null;
 TextArea message_TextArea=null;
 ChatServer chatServer=null;

 User(ChatServer chatServer,int ID) {
  this.message_TextArea=chatServer.message_TextArea;
  this.ss=chatServer.ss;
  this.users=chatServer.users;
  this.roomGroup=chatServer.roomGroup;
  this.ID=ID;
  this.chatServer=chatServer;
 }// CONSTRATOR 1 ended

 public void run() {
  used=false;
  try{
   while(true){
    String message=null;
    s=ss.accept();
    message_TextArea.appendText("\nChannel "+ID+"socket opened");
    io_in=new DataInputStream(s.getInputStream());
    io_out=new DataOutputStream(s.getOutputStream());
    used=true;
    logged=false;
    try{
     while(used) {
      message=io_in.readUTF();
      message_TextArea.appendText("\nChannel"+ID+"("+
         name+"):receive:"+message);
      chatServer.num_Line++;
      if (chatServer.num_Line >150) {
       message_TextArea.setText("");
       chatServer.num_Line=0;
      }
      if (message.equals("text")) sendText();
      else if (message.equals("draw")) sendDraw();
      else {
       commandCenter(message,new DataBag("none",
        "none",0,0,0,0,0));
       if ((message.equals("new"))|(message.equals
        ("join"))) refreshToAll();
        else if (message.equals("quit"))
         refreshToAllNotMe();
       }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久蜜桃一区二区| 成人高清视频在线| 欧美激情在线免费观看| 在线观看精品一区| 国产真实乱偷精品视频免| 亚洲精品高清在线观看| 久久久91精品国产一区二区三区| 欧美综合一区二区三区| 国产一区二区91| 午夜精品在线视频一区| 国产精品麻豆欧美日韩ww| 欧美变态tickling挠脚心| 91久久精品一区二区二区| 国产激情一区二区三区四区| 免费的成人av| 偷拍一区二区三区| 一区二区高清在线| 亚洲人成网站影音先锋播放| 久久久精品人体av艺术| 精品少妇一区二区三区日产乱码| 国产精品资源在线观看| 欧美日韩免费观看一区三区| 欧美日韩一区精品| 成人免费不卡视频| 精品一区二区av| 免费在线观看一区| 午夜精品久久久久久久久久| 亚洲人xxxx| 国产精品国产三级国产专播品爱网| 精品国产一区二区三区四区四| 欧美日韩国产另类不卡| 欧美亚洲日本国产| 色一区在线观看| 成人18视频在线播放| 国产91精品免费| 国产精品 欧美精品| 国产一区二区视频在线| 久久激五月天综合精品| 另类专区欧美蜜桃臀第一页| 日本免费在线视频不卡一不卡二| 天堂成人国产精品一区| 日本视频中文字幕一区二区三区| 亚洲成av人片一区二区三区| 亚洲国产aⅴ成人精品无吗| 亚洲一区二区三区小说| 日本不卡一二三| 日韩午夜av一区| 日韩欧美国产成人一区二区| 欧美日韩精品欧美日韩精品| 欧美三级电影精品| 欧美军同video69gay| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲风情在线资源站| 亚洲成人免费在线观看| 婷婷国产在线综合| 麻豆精品视频在线观看| 国产麻豆一精品一av一免费 | 欧美午夜精品一区二区蜜桃| 欧美综合在线视频| 欧美一区二区三区四区视频| 精品成人免费观看| 国产精品三级久久久久三级| 中文字幕中文在线不卡住| 亚洲一区在线视频| 免费精品视频在线| 成人免费毛片a| 色天使久久综合网天天| 欧美一区二区三区视频免费播放| 欧美成人一区二区三区片免费 | 欧美日韩一区在线| 日韩欧美精品在线视频| 国产午夜一区二区三区| 最新国产精品久久精品| 亚洲国产va精品久久久不卡综合 | 色成人在线视频| 91精品国产综合久久精品麻豆| 久久先锋资源网| 一区二区在线看| 国产伦精品一区二区三区免费迷| 99视频一区二区| 欧美一区二区三区日韩视频| 国产欧美一区二区精品婷婷| 一级特黄大欧美久久久| 精一区二区三区| 久久久99免费| 亚洲日穴在线视频| 久久电影网站中文字幕| 一本色道a无线码一区v| 欧美一级欧美三级在线观看| 成人欧美一区二区三区1314| 人人狠狠综合久久亚洲| 日本欧美一区二区三区乱码| 精品中文字幕一区二区小辣椒| 福利一区在线观看| 欧美亚洲综合色| 亚洲欧洲日韩在线| 日本中文字幕一区二区有限公司| 久久99国产精品久久| 99视频一区二区| 欧美一区二区三区四区五区| 亚洲色图在线播放| 韩日欧美一区二区三区| 国产99久久久国产精品潘金网站| 欧美最猛性xxxxx直播| 久久久久久97三级| 欧美a级理论片| 欧美亚洲综合一区| 亚洲女女做受ⅹxx高潮| 成人高清视频免费观看| 国产欧美精品一区| 麻豆成人91精品二区三区| 欧美日韩情趣电影| 亚洲图片欧美一区| 91黄色小视频| 亚洲一线二线三线久久久| av综合在线播放| 国产精品国产三级国产a| 色呦呦日韩精品| 亚洲一二三四久久| 337p粉嫩大胆色噜噜噜噜亚洲 | 蓝色福利精品导航| 久久精品国产99| 久久久久久久久久久电影| 69精品人人人人| 4438亚洲最大| 欧美精品一区视频| 国产农村妇女精品| 卡一卡二国产精品| 日韩欧美不卡在线观看视频| 91激情五月电影| 综合久久给合久久狠狠狠97色| 国产精品羞羞答答xxdd| 精品成人在线观看| 韩国欧美国产1区| 日韩精品一区二区三区老鸭窝| 丝袜亚洲精品中文字幕一区| aaa亚洲精品| 国内精品免费在线观看| 欧美国产精品中文字幕| av资源网一区| 日韩国产在线观看| www日韩大片| 日本高清无吗v一区| 视频在线在亚洲| 久久午夜免费电影| 色呦呦国产精品| 国产伦精一区二区三区| 亚洲欧洲成人自拍| 欧美一级日韩不卡播放免费| 成人国产精品免费观看视频| 亚洲一区二区偷拍精品| 26uuu久久综合| 欧美高清一级片在线| 成人av午夜影院| 六月丁香婷婷色狠狠久久| 亚洲激情一二三区| 中文字幕一区二区三区四区| 精品国产网站在线观看| 欧美日韩一区二区不卡| 91免费精品国自产拍在线不卡| 狠狠色丁香久久婷婷综| 一区二区三区不卡视频在线观看 | 韩国av一区二区| 韩日av一区二区| 亚洲精品中文在线影院| 亚洲欧美国产77777| 国产婷婷色一区二区三区| 欧美一区三区二区| 不卡欧美aaaaa| 亚洲成人www| 日韩高清在线不卡| 777午夜精品视频在线播放| 樱桃视频在线观看一区| av爱爱亚洲一区| 99久久久久免费精品国产| 亚洲成人av资源| 2021中文字幕一区亚洲| 91小宝寻花一区二区三区| 91极品视觉盛宴| 免费观看日韩av| **网站欧美大片在线观看| 欧美一区二区视频网站| 成人看片黄a免费看在线| 亚洲高清在线视频| 国产欧美一区二区精品性色超碰| 91成人免费网站| 国产伦精一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 欧美精品一区二区三区在线播放 | av一区二区三区| 天天综合天天综合色| 国产精品网曝门| 欧美一级理论性理论a| 99re免费视频精品全部| 蜜臀av性久久久久蜜臀av麻豆| 中文字幕一区二区三区在线播放 | 欧美一区二区三区喷汁尤物| 成人免费看视频| 久久精品久久99精品久久| 亚洲女女做受ⅹxx高潮|