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

📄 clientconfiguration.java

📁 老师给的在线航班系统
💻 JAVA
字号:
package com.toa.abs.cui;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Properties;

import com.toa.abs.model.Request;
import com.toa.abs.model.Response;
import com.toa.abs.model.Sales;
import com.toa.abs.util.ErrorUtil;
import com.toa.abs.util.LogUtil;

/**
 * 该类是客户端配置参数类,主要用来保存客户端运行时的全局变量。
 * @author tangliang
 *
 */
public class ClientConfiguration {
	
	private Socket socket;//当前连接的Socket,此Socket在整个客户端程序运行过程中一直有效。
	private ObjectInputStream ois;//根据Socket得到的对象输入流,在整个客户端程序运行过程中一直有效。
	private ObjectOutputStream oos;//根据Socket得到的对象输出流,在整个客户端程序运行过程中一直有效。
	

	private Sales currentSale;//当前登录的营业员。
	private List airports;//从服务器接收的机场列表
	
	private Properties pro;//连接参数配置文件属性集
	private LogUtil logUtil;
	private ErrorUtil errorUtil;
	
	
	
//	public static List flights;//航班表中包含的航班对象集合。
//	public static ClientMainFrame clientFrame;//客户端主界面。
//	public static OrderFrame currentOrderFrame;//显示当前订单的界面。
	
	/**
	 * 构造方法
	 */
	public ClientConfiguration(String logFileName,String errorMessageFileName,String connectionFileName){
		ClientMainClass.startPercent=40;
		ClientMainClass.startMessgae="提取日志信息...";
		ClientMainClass.delay(300);
		logUtil=new LogUtil(new File(logFileName));
		logUtil.printMessage("系统启动,重新初始化!");

		ClientMainClass.startPercent=50;
		ClientMainClass.startMessgae="设置错误信息...";
		ClientMainClass.delay(300);
		errorUtil=new ErrorUtil(new File(errorMessageFileName));

		
		ClientMainClass.startPercent=60;
		ClientMainClass.startMessgae="读取连接参数...";
		ClientMainClass.delay(400);
		
		pro=new Properties();

		try {
			pro.load(new FileInputStream(connectionFileName));
		} catch (FileNotFoundException e) {
			errorUtil.showErrorMessageDialog(1001);//1001:找不到系统配置文件,请检查 "client_config.txt"
			logUtil.printMessage(errorUtil.getMessage(1001));
			System.exit(0);
		} catch (IOException e) {
			errorUtil.showErrorMessageDialog(1002);//1002:无法读取配置文件,文件损坏或格式不正确 "client_config.txt"
			logUtil.printMessage(errorUtil.getMessage(1002));
			System.exit(0);
		}
	}
	
	
	
	/**
	 * 建立网络连接
	 *
	 */
	public  void createSocket(){
		ClientMainClass.startPercent=70;
		ClientMainClass.startMessgae="建立连接...";
		ClientMainClass.delay(400);
		
		try {
			String hostName=pro.getProperty("ServerIP");
			String port=pro.getProperty("ServerPort");
			if(hostName==null || port==null){
				errorUtil.showErrorMessageDialog(1003);//1003:配置文件参数不正确,请检查配置文件参数 "client_config.ini"
				logUtil.printMessage(errorUtil.getMessage(1003));
			}
			socket=new Socket(hostName,Integer.parseInt(port));
			oos=new ObjectOutputStream(socket.getOutputStream());
			ois=new ObjectInputStream(socket.getInputStream());
			logUtil.printMessage("成功建立连接!");
			
			ClientMainClass.startPercent=80;
			ClientMainClass.startMessgae="获得机场列表...";
			ClientMainClass.delay(400);
			
			getAirportList();//得到机场列表
			ClientMainClass.startPercent=100;
			
		} catch (NumberFormatException e) {
			errorUtil.showErrorMessageDialog(1004);//1004:配置文件参数不正确,请检查配置文件参数 "client_config.ini"
			logUtil.printMessage(errorUtil.getMessage(1004));
			System.exit(0);
		} catch (UnknownHostException e) {
			errorUtil.showErrorMessageDialog(1005);//1005:无法建立连接,未知的主机名
			logUtil.printMessage(errorUtil.getMessage(1005));
			System.exit(0);
		} catch (IOException e) {
			errorUtil.showErrorMessageDialog(1006);//1006:无法建立连接,连接被拒绝
			logUtil.printMessage(errorUtil.getMessage(1006));
			System.exit(0);
		}
	}
	
	public void getAirportList(){
		Request req=new Request(Request.GET_AIRPORT_LIST_REQ);
		
		try {
			logUtil.printMessage("发送请求:获得机场列表");
			oos.writeObject(req);
			oos.flush();
			
			Response res=(Response)ois.readObject();
			airports=(List)res.getValue("AIRPORT_LIST");
			logUtil.printMessage("得到机场列表");
		} catch (IOException e) {
			errorUtil.showErrorMessageDialog(1007);//
			logUtil.printMessage(errorUtil.getMessage(1007));
		}catch (ClassNotFoundException e) {
			errorUtil.showErrorMessageDialog(1008);//
			logUtil.printMessage(errorUtil.getMessage(1008));
		}
	}
	
	
	
	
	public List getAirports() {
		return airports;
	}



	public Sales getCurrentSale() {
		return currentSale;
	}



	public ObjectInputStream getOis() {
		return ois;
	}



	public ObjectOutputStream getOos() {
		return oos;
	}



	public Socket getSocket() {
		return socket;
	}

	public ErrorUtil getErrorUtil() {
		return errorUtil;
	}



	public LogUtil getLogUtil() {
		return logUtil;
	}



	/**

	 * @param args
	 */
	public static void main(String[] args) {
		
	}
}

⌨️ 快捷键说明

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