?? clientimpl.java
字號(hào):
package org.com.gather;
import java.util.*;
import java.io.*;
import java.net.*;
public class ClientImpl implements Client{
private Properties pro = null;
private Log log = null;
private BackUp back = null;
public ClientImpl(Properties pro){
this.pro = pro;
}
public void send(Collection col){
if(!col.isEmpty()){
log.writeDebug("要發(fā)送到服務(wù)端的數(shù)據(jù)不為空,大小為 :"+col.size());
OutputStream os = null;
ObjectOutputStream oos = null;
Socket socket = null;
try{
socket = new Socket(pro.getProperty("server"),new Integer(pro.getProperty("port")).intValue());
}catch(UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
log.writeError("連接主機(jī)失敗!");
back.storeForEmpty(col); log.writeInfo("連接主機(jī)失敗,把采集到的數(shù)據(jù)成功備份到文件!");
//如果連接主機(jī)失敗,則直接退出程序;
System.exit(0);
}
try{
os = socket.getOutputStream();
}catch(IOException e){
e.printStackTrace();
log.writeError("從服務(wù)器取 Soket 流出異常!");
System.exit(0);
}
try{
oos = new ObjectOutputStream(os);
oos.writeObject(col);
os.close();
oos.close();
}catch(IOException e){
log.writeError("發(fā)送服務(wù)器途中出異常;");
back.storeForEmpty(col);
log.writeInfo("發(fā)送數(shù)據(jù)失敗,以成功備份到文件!");
System.exit(0);
}
}else{
OutputStream os = null;
ObjectOutputStream oos = null;
Socket socket = null;
log.writeDebug("采集到的數(shù)據(jù)為空,采用第二種方式發(fā)送;");
try{
socket = new Socket(pro.getProperty("server"),new Integer(pro.getProperty("port")).intValue());
}catch(UnknownHostException e){
e.printStackTrace();
}catch(IOException e){
log.writeError("連接主機(jī)失敗!");
back.storeForEmpty(col); log.writeInfo("連接主機(jī)失敗,把采集到的數(shù)據(jù)成功備份到文件!");
System.exit(0);
}
try{
os = socket.getOutputStream();
}catch(IOException e){
e.printStackTrace();
log.writeError("從服務(wù)器取 Soket 流出異常!");
System.exit(0);
}
try{
oos = new ObjectOutputStream(os);
log.writeDebug("發(fā)各請(qǐng)求給服務(wù)端,讓服務(wù)端自動(dòng)檢測(cè)是否有備份數(shù)據(jù),有則入庫(kù);");
oos.writeObject(col);
os.close();
oos.close();
}catch(IOException e){
log.writeError("發(fā)送服務(wù)器途中出異常;");
back.storeForEmpty(col);
log.writeInfo("發(fā)送數(shù)據(jù)失敗,以成功備份到文件!");
System.exit(0);
}
}
}
public void setLog(Log log){
this.log = log;
}
public void setBackUp(BackUp back){
this.back = back;
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -