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

📄 chatdata.java

📁 一个用java编写的服务器,对于学习网络编程的人来说是个很好的例子
💻 JAVA
字号:
/*
 * This	file is	part of	the	QuickServer	library	
 * Copyright (C) 2003-2005 QuickServer.org
 *
 * Use, modification, copying and distribution of this software is subject to
 * the terms and conditions of the GNU Lesser General Public License. 
 * You should have received a copy of the GNU LGP License along with this 
 * library; if not, you can download a copy from <http://www.quickserver.org/>.
 *
 * For questions, suggestions, bug-reports,	enhancement-requests etc.
 * visit http://www.quickserver.org
 *
 */

package	chatserver;

import org.quickserver.net.server.*;

import org.quickserver.util.pool.PoolableObject;
import org.apache.commons.pool.BasePoolableObjectFactory; 
import org.apache.commons.pool.PoolableObjectFactory;

import java.util.*;
import java.io.*;
import java.nio.*;
import java.util.logging.*;

/**
 *
 * @author	Akshathkumar Shetty
 */
public class ChatData implements ClientData, ClientIdentifiable, PoolableObject	{
	private	static final Logger	logger = 
		Logger.getLogger(ChatData.class.getName());

	private	static Set usernameList	= new HashSet();

	private	String username	= null;
	private	String room	= null;
	private	String info	= null;

	//for auth
	private String lastAsked = null;
	private byte password[] = null;

	public void setLastAsked(String lastAsked) {
		this.lastAsked = lastAsked;
	}
	public String getLastAsked() {
		return lastAsked;
	}

	public void setPassword(byte[] password) {
		this.password = password;
	}
	public byte[] getPassword() {
		return password;
	}

	public boolean registerUsername(String username) {
		return usernameList.add(username);
	}
	public void deregisterUsername(String username) {
		usernameList.remove(username);
	}
	public void	setUsername(String username) {
		this.username =	username;
	}
	public String getUsername() {
		return username;
	}

	public void	setRoom(String room) {
		this.room =	room;
	}
	public String getRoom()	{
		return room;
	}

	public String getClientId()	{
		return username;
	}

	public String getClientKey() {
		if(room==null)
			return username;
		else
			return username+"@"+room;
	}

	public void	setClientInfo(String info) {
		this.info =	info;
	}
	public String getClientInfo() {
		return getClientKey()+"	- "+info;
	}

	public String toString() {
		return getClientInfo();
	}

	//-- PoolableObject
	public void	clean()	{
		usernameList.remove(username);
		username = null;
		room = null;
		info = null;
		lastAsked = null;
	}

	public boolean isPoolable()	{
		return true;
	}

	public PoolableObjectFactory getPoolableObjectFactory()	{
		return	new	BasePoolableObjectFactory()	{
			public Object makeObject() { 
				return new ChatData();
			} 
			public void	passivateObject(Object obj)	{
				ChatData ed	= (ChatData)obj;
				ed.clean();
			} 
			public void	destroyObject(Object obj) {
				if(obj==null) return;
				passivateObject(obj);
				obj	= null;
			}
			public boolean validateObject(Object obj) {
				if(obj==null) 
					return false;
				else
					return true;
			}
		};
	}
}


⌨️ 快捷键说明

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