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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? chatserver.java

?? 用 戶 在 瀏 覽 到 白 板 主 頁(yè) 時(shí)
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
import java.net.*;
import java.io.*;
import java.awt.*;
import java.util.*;
import java.applet.*;


// class 1:server main class,服務(wù)器啟動(dòng)類(lèi)
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ù)類(lèi)
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ù)類(lèi)
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ù)線程類(lèi)
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();
       }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米四色…亚洲| 亚洲欧洲三级电影| 亚洲丝袜精品丝袜在线| 另类综合日韩欧美亚洲| 91免费在线看| 国产午夜亚洲精品不卡| 日韩av中文在线观看| 色哦色哦哦色天天综合| 久久久激情视频| 日韩成人伦理电影在线观看| 色综合婷婷久久| 国产午夜亚洲精品羞羞网站| 美腿丝袜一区二区三区| 欧美体内she精高潮| 国产精品久久久久久亚洲毛片 | 久久一区二区视频| 成人午夜短视频| 精品裸体舞一区二区三区| 天天色 色综合| aaa欧美日韩| 久久久久久久综合日本| 麻豆精品一二三| 欧美日韩国产精品成人| 亚洲国产视频在线| 色婷婷精品大在线视频| 亚洲婷婷综合色高清在线| 成人手机在线视频| 欧美激情综合网| 国产一区二区成人久久免费影院 | 日本精品视频一区二区| 欧美国产欧美综合| 国产精品资源网| wwwwww.欧美系列| 精品中文字幕一区二区小辣椒| 欧美日韩日日骚| 亚洲高清免费在线| 欧美色精品在线视频| 亚洲另类在线制服丝袜| 91欧美激情一区二区三区成人| 国产精品国产三级国产aⅴ原创| 国产不卡免费视频| 国产精品天天看| 成人爱爱电影网址| 中文字幕一区二区三| 不卡一区中文字幕| 亚洲精品视频一区| 在线观看成人免费视频| 亚洲大片精品永久免费| 欧美精品日韩综合在线| 五月综合激情日本mⅴ| 欧美一二三区精品| 国产在线精品国自产拍免费| 久久久一区二区三区| 丁香一区二区三区| 亚洲免费在线播放| 欧美视频中文一区二区三区在线观看| 亚洲国产精品嫩草影院| 欧美精品在欧美一区二区少妇| 视频在线观看国产精品| 精品少妇一区二区三区视频免付费| 国产在线不卡一区| 国产精品二区一区二区aⅴ污介绍| 91麻豆成人久久精品二区三区| 一卡二卡三卡日韩欧美| 欧美人与性动xxxx| 精品一区二区综合| 国产精品动漫网站| 欧美日韩卡一卡二| 男人的j进女人的j一区| 久久久久久久性| 91在线精品一区二区三区| 亚洲永久精品国产| 欧美α欧美αv大片| 成人午夜在线播放| 一区二区三区在线免费| 在线播放中文字幕一区| 国产一区二区在线影院| 国产精品久久久久三级| 欧美美女一区二区在线观看| 精品亚洲成a人在线观看| 国产精品国产三级国产普通话蜜臀 | 国产福利一区在线| 亚洲精品中文字幕乱码三区| 欧美一区二区私人影院日本| 国产精品羞羞答答xxdd| 一区二区在线观看不卡| 日韩三级.com| 97se亚洲国产综合自在线 | 国产亚洲成aⅴ人片在线观看| 99久久精品国产毛片| 视频在线观看国产精品| 中文字幕不卡的av| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲精品一线二线三线| 99久久国产综合精品色伊| 日本中文字幕不卡| 亚洲欧美综合另类在线卡通| 欧美一级在线观看| 99精品久久只有精品| 蜜臀久久久99精品久久久久久| 国产精品美女久久久久久2018| 欧美色成人综合| 国产mv日韩mv欧美| 日韩成人av影视| 亚洲欧美国产三级| 精品免费国产二区三区| 欧美专区在线观看一区| 国产精品资源站在线| 天天色综合成人网| 亚洲另类中文字| 日本一区二区综合亚洲| 337p亚洲精品色噜噜噜| 91视视频在线观看入口直接观看www| 久久精品国产99| 亚洲一区二区视频| 欧美国产激情一区二区三区蜜月| 欧美日韩一级片在线观看| 成人激情av网| 国模少妇一区二区三区| 午夜久久电影网| 樱桃视频在线观看一区| 国产欧美精品一区二区色综合朱莉| 欧美精品色一区二区三区| 色婷婷激情久久| av不卡免费在线观看| 国产精品99久久久久久久女警| 天天色图综合网| 亚洲无人区一区| 亚洲色图视频免费播放| 国产精品日韩精品欧美在线| 亚洲精品一区二区三区福利| 欧美日本一区二区在线观看| 色综合天天在线| aaa国产一区| 成人午夜av电影| 国产成人在线免费| 国产美女精品人人做人人爽| 美女脱光内衣内裤视频久久网站| 亚洲狠狠爱一区二区三区| 亚洲欧美日本在线| 亚洲视频香蕉人妖| 国产精品国产自产拍高清av| 中文字幕av一区二区三区免费看| 久久一区二区三区国产精品| 精品乱人伦一区二区三区| 欧美一区二区三区日韩视频| 欧美日本一道本| 欧美日韩在线播放三区四区| 在线影院国内精品| 91国产免费看| 欧美性一级生活| 欧美熟乱第一页| 欧美精品日韩一本| 欧美日产在线观看| 这里只有精品电影| 91精品国产色综合久久不卡电影| 3751色影院一区二区三区| 91精品欧美福利在线观看| 欧美男人的天堂一二区| 欧美一区二区视频观看视频 | 丰满亚洲少妇av| 成人黄页毛片网站| 91网站最新网址| 欧美综合在线视频| 欧美日韩成人高清| 日韩欧美卡一卡二| 久久先锋影音av鲁色资源| 久久久久9999亚洲精品| 国产婷婷色一区二区三区四区| 国产精品午夜在线观看| 亚洲色图欧美在线| 亚洲综合图片区| 日本不卡视频在线| 国产精选一区二区三区| 成人a免费在线看| 91蜜桃免费观看视频| 欧美伊人久久久久久久久影院| 制服视频三区第一页精品| 欧美本精品男人aⅴ天堂| 国产欧美日产一区| 亚洲精品亚洲人成人网| 婷婷亚洲久悠悠色悠在线播放| 日韩av一区二区三区| 国产精品99久久久久久久vr | 国产成人无遮挡在线视频| 成人97人人超碰人人99| 欧美在线看片a免费观看| 欧美电影一区二区三区| 26uuu国产电影一区二区| 国产精品国产三级国产有无不卡| 亚洲制服丝袜在线| 蜜桃久久久久久| 成人性生交大片| 欧美人妖巨大在线| 国产网站一区二区| 亚洲电影一区二区三区| 精久久久久久久久久久| 99久久99久久久精品齐齐| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日本一区二区|