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

📄 agendaclient.java

📁 使用java rmi编写的一个议程服务系统
💻 JAVA
字号:

import java.io.*;
import java.net.MalformedURLException;
import java.rmi.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;

import commonResource.Meeting;

import agendaClient.*;
import agendaServer.agendaManagerInterface;
import agendaServer.userManagerInterface;

/**
 * 客户端程序
 * @author Crise.Lee
 * @version 1.0
 */
public class AgendaClient {
	private static Boolean success;
	public static final String format="yyyy-MM-dd HH:mm";
	private static ArrayList<Meeting> meetinglist=null;
	public static void main(String[] args)
	{
		AnalyzeString analyze=new AnalyzeString();
		Object[] command=null;
		System.out.println("******************************************************************************");
		System.out.println("******************************************************************************");
		System.out.println("                           欢迎使用分布式议程服务系统                         ");
//		System.out.println("****************************************************************************");
		printCommand.printCommandFormat();
		
			try {
				BufferedReader read=new BufferedReader(new FileReader("clearMeeting"));
				String readline=read.readLine();
				while(readline!=null)
				{
					try {
						command=analyze.AnalyzeCommand(readline);
//						for(int i=0;i<command.length;i++)
//						{
///** */						System.out.println("command["+i+"]="+command[i]);
//						}
							handle(command);
					}catch (CommandFatmatException e) {
						System.err.println(e.getMessage());
						try {
							Thread.sleep(100);
						} catch (InterruptedException e1) {
							//e1.printStackTrace();
						}
						printCommand.printCommandFormat();
						
						//e.printStackTrace();
					}catch (Exception e) {
						System.err.println(e.getMessage());
						try {
							Thread.sleep(100);
						} catch (InterruptedException e1) {
							//e1.printStackTrace();
						}
						//e.printStackTrace();
					}finally
					{
//						try {
//							Thread.sleep(1000*1);
//						} catch (InterruptedException e) {
//							//e.printStackTrace();
//						}
						System.out.println();
						System.out.println("******************************************************************************");
					}
					readline=read.readLine();	
				} 
				
			} catch (FileNotFoundException e) {
				System.err.println(e.getMessage());
				System.err.println("错误:没有发现文件");
				//e.printStackTrace();
			} catch (IOException e) {
				System.err.println(e.getMessage());
				System.err.println("错误:输入输出流发生错误");
				//e.printStackTrace();
			} 
	}
	
	/**
	 * 处理放回的命令参数,并且调用远程的方法实现用户想要的功能
	 * @param command
	 * @return
	 * @throws RemoteException
	 * @throws MalformedURLException
	 * @throws NotBoundException
	 */
	public static Boolean handle(Object[] command) throws RemoteException, MalformedURLException, NotBoundException
	{
		Iterator<Meeting> iterator=null;
		Meeting meeting=null;
		int commType;
		//得到命令的类型
		commType=(Integer)command[0];
		int portNum;
		String hostName=null;
		String registryURL=null,agendaURL=null;
		
		//get the hostName and portNum
		hostName=(String)command[1];
		portNum=(Integer)command[2];
		registryURL="rmi://"+hostName+":"+portNum+"/user";
		agendaURL="rmi://"+hostName+":"+portNum+"/agenda";
		
    	userManagerInterface users=(userManagerInterface)Naming.lookup(registryURL);
		agendaManagerInterface agendas=(agendaManagerInterface)Naming.lookup(agendaURL);
		switch(commType)
		{
		case 1:
			success=false;
			success=users.register((String)command[3], (String)command[4]);
			if(success)
				System.out.println("操作成功");
			else
				System.out.println("操作失败");
			break;
			
		case 2:
			success=false;
			success=agendas.add((String)command[3], (String)command[4], (String)command[5],
					(Date)command[6], (Date)command[7], (String)command[8]);
			if(success)
				System.out.println("操作成功");
			else
				System.out.println("操作失败");
			break;
			
		case 3:
			meetinglist=null;
			meetinglist=agendas.query((String)command[3], (String)command[4],(Date)command[5], (Date)command[6]);
			
			if(meetinglist==null)
				System.out.println("  会议查询错误,没有从服务器返回结果。。。");
			else if(meetinglist.size()==0)
				System.out.println("  在输入的查询时间内,您没有会议。。。");
			else{
				iterator=meetinglist.iterator();
				int i=0;
				while(iterator.hasNext())
				{
					i++;
					meeting=iterator.next();
					System.out.println("第 "+i+" 个会议  "+"会议名:"+meeting.getTitle());
					System.out.println("             发起人:"+meeting.getUserName());
					System.out.println("             邀请人:"+meeting.gerOtherName());
					System.out.println("             起始时间:"+dataToStr(meeting.getStartTime()));
					System.out.println("             结束时间:"+dataToStr(meeting.getEndTime()));	
				}
			}
			break;
			
		case 4:
			success=false;
			success=agendas.delete((String)command[3], (String)command[4],(String)command[5]);
			if(success)
				System.out.println("操作成功");
			else
				System.out.println("操作失败");
			break;
			
		case 5:
			success=false;
			success=agendas.clear((String)command[3], (String)command[4]);
			if(success)
				System.out.println("操作成功");
			else
				System.out.println("操作失败");
			break;
			
		default:
			System.out.println("参数错误");	
		
		}
		return success;
	}
	
	/**
	 * 转换日期的格式,使其按照设置的格式打印出来
	 * @param date
	 * @return
	 */
	public static String dataToStr(Date date)
	{
		String dateStr=null;
	    SimpleDateFormat dateTimeFormat = new SimpleDateFormat(format);
	    dateStr = dateTimeFormat.format(date);
		return dateStr;
	}
	
}

⌨️ 快捷键说明

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