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

📄 commandhandler.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 dateserver;

import java.net.*;
import java.io.*;
import java.util.Date;
import org.quickserver.net.server.*;

public class CommandHandler implements ClientCommandHandler {

	public void gotConnected(ClientHandler handler)
		throws SocketTimeoutException, IOException {
		handler.sendSystemMsg("Connection opened : "+
			handler.getSocket().getInetAddress());

		handler.sendClientMsg("Welcome to DateServer v " + 
			DateServer.VER);
	}

	public void lostConnection(ClientHandler handler) 
		throws IOException {
		handler.sendSystemMsg("Connection lost : " + 
			handler.getSocket().getInetAddress());
	}
	public void closingConnection(ClientHandler handler) 
		throws IOException {
		handler.sendSystemMsg("Connection closed : " + 
			handler.getSocket().getInetAddress());
	}

	public void handleCommand(ClientHandler handler, String command)
			throws SocketTimeoutException, IOException {
		
		if(command.toLowerCase().equals("quit")) {
			handler.sendClientMsg("Bye ;-)");
			handler.closeConnection();
		} else if(command.toLowerCase().equals("exchange date")) {
			float version = QuickServer.getVersionNo();
			if(version >= 1.2) {
				//we can use built in support
				handler.setDataMode(DataMode.OBJECT, DataType.OUT);
				handler.sendClientObject(new Date());
				handler.setDataMode(DataMode.STRING, DataType.OUT);
				//will block until the client ObjectOutputStream 
				//has written and flushed the header.
				//we know our client will send date object
				//as soon as it recives our date its ok
				handler.setDataMode(DataMode.OBJECT, DataType.IN); 
			} else {
				//no built in support
				ObjectOutputStream oos = 
					new ObjectOutputStream(handler.getOutputStream());
				oos.writeObject(new Date());
				oos.flush();
				oos = null;
				
				ObjectInputStream ois = 
					new ObjectInputStream(handler.getInputStream());
				try	{
					Date gotDate = (Date) ois.readObject();
					handler.sendSystemMsg("Got date : " + gotDate);
				} catch (ClassNotFoundException e) {
					handler.sendSystemMsg("Unknown object got : "+e);
				}
				ois = null;
			}
		} else {
			handler.sendSystemMsg("Got cmd : " + command);
			handler.sendClientMsg("You Sent : " + command);
		}
	}
}

⌨️ 快捷键说明

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