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

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

?? chatservlet.java

?? 自由聊天室本程序是一個由Servlet編寫的聊天室程序,支持開房間、私聊等功能
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
			pout.println("<P align=left><TEXTAREA cols=19 name=S1 rows=18 style=\"COLOR: rgb(0,0,255); FONT-SIZE: 9pt\">");
			/*pout.println("****************");
			pout.println("房間[main]");
			pout.println("狀態(tài)[開]");
			while(userlist.hasMoreElements()){
				pout.println("["+(String)userlist.nextElement()+"]");
				i++;
				//pout.print("\r\n");
			}*/
			while(roomlist.hasMoreElements()){
				room = (Room)(roomlist.nextElement());
				roommates = room.getUsers();
				pout.println("****************");
				pout.println("房間["+room.getName()+"]");
				pout.println("狀態(tài)[開]");
				i = 0;
				while(roommates.hasMoreElements()){
					pout.println("["+(String)roommates.nextElement()+"]");
					i++;
					//pout.print("\r\n");
				}
				pout.println("");
			}
			pout.print("\r\n");
			pout.print("</TEXTAREA><BR><FONT color=#ff0000>聊天室在線</FONT><FONT color=#0066ff size=3>"+i+"</FONT><FONT color=#ff0000>人 ");
			pout.print("</FONT></P></FORM></TD></TR></TBODY></TABLE></BODY></HTML>");
			pout.flush();
			pout.close();
		}catch(IOException e){
		}
	}

	private synchronized boolean addRoomMessage(String room,Message message){
		Enumeration roommates=rooms.getRoomUsers(room);
		while(roommates.hasMoreElements()){
			users.addUserMessage((String)roommates.nextElement(),message);
		}
		return true;
	}
}

class UserList{
	private Hashtable list = new Hashtable();
	private Hashtable active = new Hashtable();

	UserList(){
	}

	protected synchronized boolean add(String user){
		if(exists(user)) return false;
		list.put(user,new MessageQueue());
		touch(user);
		return true;
	}

	protected synchronized Enumeration list(){
		return list.keys();
	}

	protected synchronized boolean drop(String user){
		if(!exists(user)) return false;
		list.remove(user);
		active.remove(user);
		return true;
	}

	protected boolean exists(String user){
		return list.containsKey(user);
	}

	protected void addMessage(Message message){
		Enumeration allUsers = list.keys();
		while(allUsers.hasMoreElements()) 
			addUserMessage((String)allUsers.nextElement(),message);
	}

	protected void addUserMessage(String user,Message message){
		((MessageQueue)list.get(user)).add(message);
	}

	protected void resetUser(String user){
		((MessageQueue)list.get(user)).reset();
	}

	protected void truncUserMsgs(String user){
		((MessageQueue)list.get(user)).trunc();
	}

	protected Enumeration getMessages(String user){
		touch(user);
		return ((MessageQueue)list.get(user)).listMessages();
	}

	protected synchronized void touch(String user){
		if(exists(user)) active.put(user,new Long(System.currentTimeMillis()));
	}

	protected synchronized Enumeration inactive(int timeout){
		Vector inactive = new Vector();
		long now = System.currentTimeMillis();
		long when = now - timeout;

		Enumeration users = list.keys();
		while(users.hasMoreElements()){
			String user = (String)users.nextElement();
			if(((Long)active.get(user)).longValue()<when) inactive.addElement(user);
		}
		return inactive.elements();
	}

}

class MessageQueue{
	private Vector messageq = new Vector();

	MessageQueue(){}

	protected synchronized void add(Message message){
		messageq.insertElementAt((Object)message,0);
		notifyAll();
	}

	protected synchronized Enumeration listMessages(){
		/*try{
			if(messageq.isEmpty()){
				wait(30*1000);
			}
		}catch(InterruptedException ie){}*/
		return messageq.elements();
	}

	protected synchronized void reset(){
		//if(messageq.size()>20) messageq.setSize(20);
		messageq.removeAllElements();
	}

	protected synchronized void trunc(){
		if(messageq.size()>30) messageq.setSize(30);
		//messageq.removeAllElements();
	}
}

class Message{
	private String user;
	private String message;

	Message(String user,String message){
		this.user = user;
		this.message = message;
	}

	public String toString(){
		return user+":"+message;
	}

	protected String getUser(){
		return user;
	}

	protected String getMessage(){
		return message;
	}
}

class Room{
	private String name;
	private String owner;
	private UserList users;
	private boolean status; // true: door open
							// false: door close
	
	Room(String name,String owner){
		this.name = name;
		this.owner = owner;
		status = true;
		users = new UserList();
	}

	protected Enumeration getUsers(){
		return users.list();
	}

	public String getName(){
		return name;
	}

	public String getOwner(){
		return owner;
	}
	
	public boolean equals(Object anObject){
		//if(anObject.getClass().getName()!="Room") return false;
		if(((Room)anObject).getName().equals(name)) return true;
		return false;
	}

	protected boolean addUser(String user){
		return users.add(user);
	}

	protected boolean dropUser(String user){
		return users.drop(user);
	}

	protected boolean isDoorOpen(){
		return status;
	}

	protected void openDoor(){
		status = true;
	}

	protected void closeDoor(){
		status = false;
	}
}

class RoomList{
	private Hashtable list = new Hashtable();
	private Hashtable active = new Hashtable();

	RoomList(){
	}

	protected synchronized boolean add(Room room){
		if(exists(room)) return false;
		list.put(room.getName(),room);
		touch(room.getName());
		return true;
	}

	protected synchronized boolean addUser(String room,String user){
		if(!exists(room)) return false;
		//touch(room);
		return ((Room)list.get(room)).addUser(user);
	}

	protected synchronized Enumeration list(){
		return list.elements();
	}

	protected synchronized boolean drop(Room room){
		if(!exists(room)) return false;
		list.remove(room.getName());
		return true;
	}

	protected synchronized boolean drop(String room){
		if(!exists(room)) return false;
		list.remove(room);
		return true;
	}

	protected boolean exists(Room room){
		return list.containsKey(room.getName());
	}

	protected boolean exists(String room){
		return list.containsKey(room);
	}
	
	/*protected void resetUser(String user){
		((MessageQueue)list.get(user)).reset();
	}*/

	protected synchronized void touch(String room){
		if(exists(room)) active.put(room,new Long(System.currentTimeMillis()));
	}

	protected synchronized Enumeration inactive(int timeout){
		Vector inactive = new Vector();
		long now = System.currentTimeMillis();
		long when = now - timeout;

		Enumeration rooms = list.keys();
		while(rooms.hasMoreElements()){
			String room = (String)rooms.nextElement();
			if(((Long)active.get(room)).longValue()<when) inactive.addElement(room);
		}
		return inactive.elements();
	}

	public int size(){
		return list.size();
	}

	public Enumeration getRoomUsers(String room){
		return ((Room)list.get(room)).getUsers();
	}

	protected synchronized boolean dropRoomUser(String room,String user){
		if(!exists(room)) return false;
		return ((Room)list.get(room)).dropUser(user);
	}

	protected Room get(String room){
		return (Room)list.get(room);
	}
}

class CommandParser{
	public static int parse(String message,StringBuffer str1,StringBuffer str2){
		String commStr="";
		int commNo=0;
		message = message.trim();
		if(message.length()<2) return -1;
		int i=0;
		if(message.charAt(0)!='/') return -1;
		while(i<message.length()&&message.charAt(i)!=' '){
			commStr = commStr + message.charAt(i);
			i++;
		}
		System.out.println("commStr:"+commStr);
		if(i<message.length()){
			message = message.substring(i);
			message = message.trim();
		}
		else message = "";
		System.out.println("message2:"+message);
		if(commStr.equals("/r")) commNo = 0;
		else if(commStr.equals("/i")) commNo = 1;  //進(jìn)入房間
		else if(commStr.equals("/o")) commNo = 2;  //開門
		else if(commStr.equals("/c")) commNo = 3;  //關(guān)門
		else if(commStr.equals("/p")) commNo = 4;  //私聊
		else if(commStr.equals("/q")) commNo = 5;  //清屏
		else return -1;
		System.out.println("commNo:"+commNo);
		i = 0;
		//str1 = "";
		while(i<message.length()&&message.charAt(i)!=' '){
			str1.append(message.charAt(i));
			i++;
		}
		if(i<message.length()){
			message = message.substring(i);
			message = message.trim();
		}
		else message = "";
		System.out.println("Str1:"+str1);
		i = 0;
		//str2 = "";
		while(i<message.length()&&message.charAt(i)!=' '){
			str2.append(message.charAt(i));
			i++;
		}
		System.out.println("Str2:"+str2);
		return commNo;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区视频在线| 久久一日本道色综合| 久久99国产精品免费| 亚洲欧美国产77777| 欧美成人一区二区| 色就色 综合激情| 欧美精品vⅰdeose4hd| 国产乱人伦精品一区二区在线观看 | 日韩不卡手机在线v区| 欧美激情中文字幕一区二区| 欧美日韩国产免费一区二区| jizzjizzjizz欧美| 蜜桃传媒麻豆第一区在线观看| 1区2区3区国产精品| 精品999在线播放| 欧美日韩中文字幕一区| 99久久免费精品| 国产盗摄视频一区二区三区| 日本不卡不码高清免费观看| 亚洲高清免费视频| 亚洲欧美国产高清| 国产精品久久久久影院| 国产亚洲综合在线| 欧美成人精品3d动漫h| 欧美日韩国产高清一区二区| 色婷婷综合久久久中文一区二区 | 日韩欧美一二三四区| 亚洲欧美综合网| 久久在线观看免费| 欧美不卡一区二区三区| 欧美成人免费网站| 2023国产精品自拍| 日韩欧美高清在线| 精品乱人伦小说| 日韩欧美精品三级| 欧美刺激午夜性久久久久久久| 51午夜精品国产| 欧美一区二区日韩| 日韩一区和二区| 精品久久久久一区| 久久久久久麻豆| 欧美国产视频在线| 国产精品欧美一级免费| 亚洲婷婷综合色高清在线| 亚洲激情图片小说视频| 亚洲免费三区一区二区| 亚洲一二三四在线| 亚瑟在线精品视频| 欧美aⅴ一区二区三区视频| 日本成人中文字幕在线视频| 免费在线看成人av| 国产高清久久久| 99久久久国产精品| 日本道精品一区二区三区| 欧美性猛交xxxx乱大交退制版| 欧美色图12p| 日韩欧美综合在线| 久久综合久久综合久久综合| 国产欧美精品一区二区三区四区| 国产精品国产馆在线真实露脸| 亚洲免费av高清| 日韩电影在线观看一区| 国产精品一区在线观看乱码 | 欧美日韩一区不卡| 欧美一区永久视频免费观看| 日韩欧美一区中文| 国产欧美日韩不卡| 亚洲综合区在线| 免费一级欧美片在线观看| 国产成人亚洲综合色影视| 波多野结衣中文字幕一区二区三区| 成人app软件下载大全免费| 欧洲精品视频在线观看| 91蝌蚪porny九色| 久久午夜羞羞影院免费观看| 亚洲欧美国产高清| 韩国一区二区三区| 成人免费毛片aaaaa**| 91伊人久久大香线蕉| 精品视频1区2区| 欧美精品一区二区三区视频| 亚洲第一会所有码转帖| 日韩电影在线观看网站| 麻豆一区二区三区| 在线观看亚洲一区| 亚洲精品国产无套在线观| 一区二区三区91| 国产中文一区二区三区| 92精品国产成人观看免费| 日韩亚洲电影在线| 国产精品久久久久桃色tv| 五月婷婷激情综合网| 成人美女在线观看| 日韩视频免费直播| 亚洲人成在线播放网站岛国| 久久se这里有精品| 91久久精品一区二区三区| 精品999在线播放| 偷窥国产亚洲免费视频| 不卡大黄网站免费看| 日韩一区二区三区电影| 亚洲视频免费在线观看| 激情五月婷婷综合网| 欧美日韩精品欧美日韩精品| 中文字幕在线观看不卡视频| 久久成人羞羞网站| 欧美日韩精品一区二区三区四区 | 欧美日韩国产另类一区| 国产精品丝袜91| 久久99国内精品| 欧美剧在线免费观看网站 | 久久国产尿小便嘘嘘尿| 欧美日韩成人综合天天影院 | 亚洲欧美日韩国产另类专区| 精品一区精品二区高清| 91精品国产乱| 亚洲va国产va欧美va观看| 色综合久久综合中文综合网| 中国av一区二区三区| 韩国成人福利片在线播放| 91精品国产91久久久久久最新毛片| 亚洲精品videosex极品| 99免费精品在线观看| 国产精品毛片a∨一区二区三区| 九九九久久久精品| 精品少妇一区二区三区日产乱码 | 中文字幕第一区第二区| 国产精品自拍三区| 久久久久久久综合| 国产精品一级片在线观看| 精品剧情在线观看| 久久99精品国产| 精品久久久久99| 久久草av在线| 精品日韩在线观看| 国产精品一区在线| 久久亚洲精华国产精华液| 国内精品在线播放| 久久免费美女视频| 国产成人亚洲综合a∨婷婷 | 日韩和欧美一区二区| 7777精品伊人久久久大香线蕉的| 亚洲午夜视频在线| 51精品久久久久久久蜜臀| 日韩成人免费电影| 欧美v日韩v国产v| 国产一区不卡视频| 中文字幕精品一区二区三区精品| 国产经典欧美精品| 国产精品乱码妇女bbbb| av不卡一区二区三区| 亚洲精品美腿丝袜| 欧美日韩国产不卡| 六月丁香婷婷久久| 日本一区二区三区dvd视频在线| 99久久99久久久精品齐齐| 亚洲精品乱码久久久久| 欧美日韩视频一区二区| 狂野欧美性猛交blacked| 久久久777精品电影网影网| 风间由美性色一区二区三区| 亚洲视频在线一区观看| 欧美性高清videossexo| 奇米一区二区三区av| 久久久精品tv| 99久久婷婷国产综合精品电影| 亚洲图片欧美视频| 26uuu色噜噜精品一区二区| 丁香婷婷综合五月| 亚洲va国产va欧美va观看| 欧美精品一区二区三区蜜臀 | 欧美精品国产精品| 国产精品一区二区三区99| 亚洲欧洲国产日本综合| 欧美天堂一区二区三区| 国精产品一区一区三区mba视频| 中文字幕在线一区| 在线观看91av| 99久久综合精品| 日本成人在线一区| 国产精品美女久久久久久| 欧美三级电影网| 国产高清不卡一区| 午夜久久久久久久久久一区二区| 久久精品人人做人人爽人人| 91久久精品网| 国产夫妻精品视频| 亚洲午夜久久久久久久久久久| www激情久久| 欧美日韩一区高清| 成人黄色网址在线观看| 日本va欧美va精品发布| 亚洲色图视频免费播放| 久久综合久久综合久久综合| 欧美日韩国产一级| 99久久精品免费| 国产a久久麻豆| 蜜桃av一区二区三区| 亚洲综合视频在线| 中文一区二区在线观看|