增量备份软件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ClientFileTcpSend.java:(客户端文件传输代码)
package socketBakUp;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import .Socket;
import .UnknownHostException;
import java.security.MessageDigest;
import java.util.Timer;
import java.util.TimerTask;
public class ClientFileTcpSend extends Socket{
private Socket client; // Socket-客户端
private String ip="";
/**
* 构造器
*
* @param ip 服务端IP地址
* @param report 服务端开放的端口
* @throws UnknownHostException
* @throws IOException
*/
public ClientFileTcpSend(String ip,Integer report) throws Exception { super(ip, report);
t his.ip=ip;
this.client = this;
if (client.getLocalPort()>0) {
socketBakUp.logger.debug("ClientFile[port:" +
client.getLocalPort() + "] 成功连接服务端2"+ip);
}else{
socketBakUp.logger.debug("服务器2连接失败");
}
}
public void sendFile(String filePath) {
DataOutputStream dos = null; // 上传服务器:输出流
FileInputStream fis = null; // 读取文件:输入流
DataInputStream dis = null; // 获取:客户端输出流
String clientMd5=ScMd5.getMD5(filePath);
int length = 0;
// 获取:上传文件
File file = new File(filePath);
// ==================== 节点:文件是否存在 ====================
if (file.exists()) {
// 发送:1文件名称、2文件长度
try {
dos = new DataOutputStream(client.getOutputStream());
dis = new DataInputStream(client.getInputStream());
dos.writeUTF("UserPswd::"+socketBakUp.clientUser+"_"+socketBakUp.clientPswd );
dos.flush();
socketBakUp.logger.debug("Socket客户端:向服务器"+ip+"发送用户名和密码:"+socketBakUp.clientUser+"_"+socketBakUp.clientPswd);
String tongguo = dis.readUTF();
socketBakUp.logger.debug("Socket客户端:向服务器"+ip+"获取服务端反馈:"+tongguo);
} catch (Exception e2) {
socketBakUp.logger.error("Socket客户端:向服务器2 1.读取输出流发生错误"+e2.toString());
e2.printStackTrace();
}
try {
String ClientFilePath="";
if(socketBakUp.judgeOsIswinodws){
ClientFilePath=file.getAbsolutePath().replace(":", "$");
}else{
ClientFilePath=file.getAbsolutePath();
}
dos.writeUTF(ClientFilePath+"::"+clientMd5);
dos.flush();
socketBakUp.logger.debug("Socket客户端:向服务器2"+ip+"发送客户端文件名:"+ClientFilePath);
} catch (Exception e3) {
socketBakUp.logger.error("Socket客户端:2.向服务器2"+ip+"发送文件名发生错误"+e3.toString());
e3.printStackTrace();
}