📄 clientconfiguration.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 + -