亚洲欧美第一页_禁久久精品乱码_粉嫩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,服務(wù)器啟動(dòng)類
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,服務(wù)器用的交談室數(shù)據(jù)類
class RoomGroup {

 Room[] rooms=null;
 final static String DEFAULT_ROOM_SUBJECT="默認(rèn)";
 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',服務(wù)器引用的用戶服務(wù)線程類
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();
       }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级视频在线| 亚洲美女电影在线| 欧美日韩在线一区二区| 久久er精品视频| 欧美丝袜丝交足nylons| 首页国产欧美久久| 欧美一区二区二区| 国内外成人在线| 国产欧美视频在线观看| 不卡av电影在线播放| 亚洲欧美激情一区二区| 在线观看日韩精品| 天堂久久久久va久久久久| 欧美一区三区四区| 国产老妇另类xxxxx| 亚洲欧洲国产日韩| 欧美体内she精高潮| 免费观看日韩av| 国产精品久久久久影院老司| 在线视频一区二区免费| 男女性色大片免费观看一区二区 | 亚洲视频狠狠干| 精品视频在线免费观看| 精品系列免费在线观看| 国产精品视频看| 欧美色中文字幕| 国产麻豆视频精品| 国产精品久线在线观看| 欧美精品一卡二卡| 国产馆精品极品| 亚洲激情自拍偷拍| 337p日本欧洲亚洲大胆精品| av在线不卡网| 美女国产一区二区三区| 国产精品国产三级国产普通话蜜臀 | 东方aⅴ免费观看久久av| 樱花影视一区二区| 久久久久久久性| 精品视频全国免费看| 国产成人夜色高潮福利影视| 亚洲乱码中文字幕| 日韩欧美色电影| 欧美伊人精品成人久久综合97| 久久精品国产亚洲5555| 亚洲精品成人精品456| 亚洲精品在线免费播放| 在线看一区二区| 成人免费视频视频| 韩国一区二区视频| 亚洲18色成人| 成人免费小视频| 久久色在线观看| 欧美一级二级在线观看| 91在线视频播放| 国产99精品视频| 久久激情综合网| 日韩精品三区四区| 伊人色综合久久天天| 国产欧美一区在线| 欧美精品一区二区三区高清aⅴ| 欧美日韩黄色一区二区| 91色综合久久久久婷婷| 国产成人在线观看免费网站| 另类综合日韩欧美亚洲| 五月激情综合网| 亚洲乱码一区二区三区在线观看| 中文成人av在线| 国产精品无码永久免费888| 精品999久久久| 精品粉嫩超白一线天av| 久久综合色婷婷| 欧美大肚乱孕交hd孕妇| 日韩午夜av一区| 欧美mv日韩mv亚洲| 欧美不卡一二三| 欧美va日韩va| 国产亚洲女人久久久久毛片| 欧美变态tickle挠乳网站| 欧美一区二区三区免费在线看| 精品视频一区二区三区免费| 欧美三级韩国三级日本三斤| 欧美三级三级三级| 欧美男女性生活在线直播观看| 欧美视频一二三区| 欧美日韩国产精品成人| 欧美人xxxx| 91精品欧美综合在线观看最新| 欧美群妇大交群的观看方式| 欧美一区二区成人| www国产亚洲精品久久麻豆| 久久久久久电影| 国产精品亲子伦对白| 亚洲色图在线播放| 亚洲一线二线三线视频| 午夜在线成人av| 蜜臀av性久久久久av蜜臀妖精| 蜜桃精品在线观看| 国产一区二区三区久久悠悠色av| 国内精品写真在线观看| 岛国av在线一区| 99r国产精品| 欧美日韩国产系列| 精品免费一区二区三区| 国产精品久久久久影院色老大| 玉米视频成人免费看| 日韩 欧美一区二区三区| 久久精品理论片| 成人网页在线观看| 欧美在线不卡视频| 91精品久久久久久蜜臀| 337p粉嫩大胆色噜噜噜噜亚洲| 中文字幕精品一区二区三区精品| 亚洲精品视频免费看| 天天色天天爱天天射综合| 国产在线精品一区二区不卡了| 99久久99久久综合| 欧美日韩高清一区二区不卡| 久久久亚洲高清| 一区二区三区欧美在线观看| 蜜桃一区二区三区在线观看| 成人精品国产免费网站| 欧美精品精品一区| 国产精品麻豆视频| 天天综合日日夜夜精品| 国产 欧美在线| 欧美另类z0zxhd电影| 欧美国产精品专区| 奇米精品一区二区三区在线观看 | 日韩综合一区二区| 成人污视频在线观看| 欧美高清性hdvideosex| 欧美激情一区二区| 三级欧美在线一区| 91视频免费看| 久久久精品蜜桃| 青青草一区二区三区| 日本丶国产丶欧美色综合| 久久久久久久综合色一本| 午夜成人免费电影| 91免费看片在线观看| 久久久久久久久97黄色工厂| 日本不卡视频在线| 色婷婷综合视频在线观看| 久久精品亚洲精品国产欧美kt∨| 午夜免费欧美电影| 色猫猫国产区一区二在线视频| 久久天堂av综合合色蜜桃网| 日韩黄色片在线观看| 在线精品亚洲一区二区不卡| 欧美高清一级片在线观看| 精品在线观看免费| 欧美一区二区在线播放| 亚洲成人久久影院| 色成年激情久久综合| 国产精品高潮久久久久无| 国产成人午夜精品5599| 精品国产免费一区二区三区四区 | 欧美午夜一区二区三区 | 自拍偷在线精品自拍偷无码专区| 国产一区二区看久久| 日韩一区二区电影| 午夜a成v人精品| 欧美色成人综合| 亚洲午夜av在线| 欧美日韩一级黄| 亚洲va国产天堂va久久en| 欧美亚洲丝袜传媒另类| 一区二区三区影院| 色呦呦国产精品| 亚洲精品国产精华液| 一本一道久久a久久精品| 亚洲视频一二区| 91小视频在线免费看| 亚洲欧美激情小说另类| 91福利在线免费观看| 亚洲制服丝袜av| 欧美日韩成人在线一区| 天堂午夜影视日韩欧美一区二区| 欧美久久久久久久久中文字幕| 五月天一区二区三区| 日韩午夜电影av| 国产一区二区三区免费在线观看| 国产视频在线观看一区二区三区| 国产成人综合网| 国产精品久久久久永久免费观看 | 2019国产精品| 成人在线综合网站| 亚洲视频在线一区观看| 一本久道久久综合中文字幕| 亚洲福利一区二区| 精品久久久久久综合日本欧美| 国产一区二区精品久久| 国产精品素人一区二区| 91在线视频播放| 秋霞午夜av一区二区三区| 欧美精品一区二区三区一线天视频| 国产一区二区三区免费播放| 最新热久久免费视频| 欧美日产在线观看| 黑人巨大精品欧美一区|