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

📄 corbaclient.java

📁 本程序适用java语言写的CORBA构架的网络服务器程序
💻 JAVA
字号:
import ex5.*;

import org.omg.CORBA.*;
import org.omg.CosNaming.*;
import org.omg.PortableServer.*;
import java.io.*;
import java.util.StringTokenizer;
import java.util.*;
public class CORBAClient{
	
	static Service serviceimpl;
	String a = "Registration input 1 "+"\r\n"+"login input 2" +"\r\n"+
    "quit input quit" + "\r\n";
	String b = "Adding Items input 1"
	    +"\r\n"+ "Querying Items input 2" + "\r\n"+
	    "Deleting Items input 3" + "\r\n"+
	    "Clearing Items input 4" + "\r\n"+
	    "Logout input logout";
	String username = null;
	String password = null;
	String label = null;
	String start = null;
	String end = null;
	BufferedReader cmd = 
        new BufferedReader(new InputStreamReader(System.in));
    String cmdMessage;
	
   
    /**
     * 用户login之后,进行选择的方法
     */
    public void Inselect(){
    	try{
    	do{
    		System.out.println(b);
			cmdMessage=cmd.readLine();
    		if(cmdMessage.equals("1")){//插入list
    			System.out.println("input your label");
    			label = cmd.readLine();
    			System.out.println("input your start time 格式:yyyy-MM-dd");
    			start=cmd.readLine();
    			System.out.println("input your end time 格式:yyyy-MM-dd");
    			end = cmd.readLine();
    			if(compareDate(start,end)){
    				cmdMessage = serviceimpl.addItems(username, password, label,start, end);
    				System.out.println(cmdMessage);
    			System.out.println("加入成功");
    			}else 
    				System.out.println("加入失败");
    		}else if(cmdMessage.equals("2")){//列出对应时间的list
    			System.out.println("input your start time to look for 格式:yyyy-MM-dd");
    			start=cmd.readLine();
    			System.out.println("input your end time to look for 格式:yyyy-MM-dd");
    			end = cmd.readLine();
    			if(compareDate(start,end)){
    			cmdMessage = serviceimpl.queryItems(username, password,start, end);
    			if(cmdMessage.equals(""))
    				System.out.println("没有相应的items哦!");
    			System.out.println(cmdMessage);
    			}else System.out.println("请检查日期");
    		}else if(cmdMessage.equals("3")){//删除 对应的一个list
    			System.out.println("input your id");
    			cmdMessage = cmd.readLine();
    			cmdMessage = serviceimpl.deleteItems(username, password, Integer.parseInt(cmdMessage));
				System.out.println(cmdMessage);
				System.out.println("删除成功");
    		}else if(cmdMessage.equals("4")){//清除所有的list
    			System.out.println("Press Y to clear all Items");
    			cmdMessage = cmd.readLine();
    			if(cmdMessage.equals("Y"))
    			{
    				cmdMessage = serviceimpl.clearItems(username, password);
				System.out.println(cmdMessage);	
				System.out.println("清除成功");
    			}
    		}
    
    	}while( cmdMessage.equals("logout")==false);//logout
    	}catch(Exception e){
			e.printStackTrace(System.out);
		}
    }
    /**
     * 注册和登陆和退出的选择
     * @param serviceimpl
     */
	public void choices(Service serviceimpl)
	{
		try{
		do{
			System.out.println(a);
			cmdMessage=cmd.readLine();
			
			if(cmdMessage.equals("1")){//注册新用户
				System.out.println("input your name: ");
				username = cmd.readLine();
				System.out.println("input your password: ");
				password = cmd.readLine();
				if(serviceimpl.register(username, password))
					System.out.println("注册成功");
				else System.out.println("注册失败,用户名可能已经存在");
				
			}else if(cmdMessage.equals("2")){//登陆
				System.out.println("input your name: ");
				username = cmd.readLine();
				System.out.println("input your password: ");
				password = cmd.readLine();
				if(serviceimpl.login(username, password))
				{
					System.out.println("登陆成功");
					Inselect();
				}
				else System.out.println("登陆失败,请检查用户名和密码");
			}			
		}while(cmdMessage.equals("quit")==false);//退出
		}catch(Exception e){
			e.printStackTrace(System.out);
		}
	}
	//连接服务器
	public void ex(){
		
		try{
			BufferedReader readIn = new BufferedReader(new InputStreamReader(System.in));
			//初始化ORB
			ORB orb = ORB.init(new String[]{ "-ORBInitialPort","1005",
					"-ORBInitialHost","localhost"}, null); 
	        //获得代表命名服务器的 Context
	        org.omg.CORBA.Object objRef = 
	        	orb.resolve_initial_references("NameService");
	        //匹配CORBA对象
	        NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
	        //获得名为"Service"的Service对象的远程引用
	        String name = "Service";
	        serviceimpl = ServiceHelper.narrow(ncRef.resolve_str(name));
	        
	        //调用Service对象的远程方法
	        System.out.println("Obtained a handle on server object: "+
	        		"serviceimpl");
	        
	        //进入选择的进程
	        choices(serviceimpl);
	        //退出则关闭	        
	        serviceimpl.shutdown();
			}catch (Exception e){
				e.printStackTrace(System.out);
			}
			
	}
	//检查日期的一个方法,保证起始日期早于结束日期
	 public boolean compareDate(String start,String end){
	    	try{
	    		 		
	    	if(changeDate(start).before(changeDate(end)))
			return true;
			else 
				return false;
	    	}catch(Exception e1){
				e1.printStackTrace(System.out);
				return false;
			}
	    }
	    //把string类型的日期转化为Date类型的数据
	    public Date changeDate(String d){
	    	try{
	    		Date date = new Date();
	    		d = d.replaceAll("-", " ");
	    		StringTokenizer token_s = new StringTokenizer(d);
		        int a = Integer.parseInt(token_s.nextToken());
	    		date.setYear(a-1900);
	    		date.setMonth(Integer.parseInt(token_s.nextToken()));
	    		date.setDate(Integer.parseInt(token_s.nextToken()));
	    		return date;
	    	}catch(Exception e1){
				e1.printStackTrace(System.out);
				return null;
			}	    	
	    }
	
	//主程序入口
	public static void main(String[] args)
	{
		try{		    	
		    new CORBAClient().ex();
		    }
		    catch(Exception e){
				e.printStackTrace();
			}
	}
}

⌨️ 快捷键说明

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