📄 postclient.java
字号:
package md_accept;
import java.io.*;
import java.net.*;
import java.util.Date;
import java.util.Vector;
import java.util.Calendar;
import java.util.GregorianCalendar;
//向拆分服务器发送反馈文件
//还包括很多其他的文件
class PostClient
implements Runnable {
Thread mainThread;
Log log;
myFile myfile;
String parentName;
final static String CONFIGNAME = "config\\md_config.txt";
PostClient(String parentName) {
mainThread = new Thread(this);
log = new Log();
myfile = new myFile();
this.parentName = parentName;
}
public void start() {
mainThread.start();
}
public void run() {
String fkDir_name = myfile.getConfigValue(CONFIGNAME, "FK_DIR");
fkDir_name = parentName + fkDir_name;
String otherDir_name = myfile.getConfigValue(CONFIGNAME, "OTHER_DIR");
otherDir_name = parentName + otherDir_name;
System.out.println("......2.发送反馈及其他文件服务已启动......");
do {
try{
send(fkDir_name,"FK");
send(otherDir_name,"NSRXX");
Thread.currentThread();
Thread.sleep(10000L);
}
catch (Exception e) {
System.out.println("发送反馈及其他文件:出现重大错误:" + e.toString());
log.addLog(".\\log\\" + log.getYYYYMMDD(), "send.log",
(new Date()).toString(),
"发送反馈及其他文件:出现重大错误:" + e.toString());
}
}
while (true);
}
/**
* 发送某个目录下的zip文件
* @param path
*/
private void send(String path,String flag) {
try {
Vector vector = myfile.getZipVector(path,flag);
for (int i = 0; i < vector.size(); i++) {
String name = (String) vector.get(i);
String endname = name.substring(0, name.indexOf(".")) + ".end";
File f1 = new File(path + "\\" + endname);
if (!f1.exists())
f1.createNewFile();
sendFile(path, name);
sendFile(path, endname); //这个end是我自己产生的,要删掉
System.out.println("成功发送文件" + name+"\\"+endname);
log.addLog(".\\log\\" + log.getYYYYMMDD(), "send.log",
(new Date()).toString(),"成功发送文件" + name+"\\"+endname);
}
}
catch (Exception e) {
System.out.println("发送目录"+path+"下的文件:出现重大错误:" + e.toString());
log.addLog(".\\log\\" + log.getYYYYMMDD(), "send.log",
(new Date()).toString(),"发送目录"+path+"下的文件:出现重大错误:" + e.toString());
//删除产生的end
myfile.delete(path, "end");
}
}
/**
* 发送文件
* @param s:处理的文件名,只能发送文件(不包含文件夹)
*/
private void sendFile(String path, String s) throws Exception {
try {
String filename = path + "\\" + s;
File file = new File(filename);
if (!file.isFile())
return;
String serverIP = myfile.getConfigValue(CONFIGNAME, "SEND_SERVERIP");
int serverport1 = 18001;
int serverport2 = 18002;
Socket fileNameConnect = new Socket(serverIP, serverport1);
fileNameConnect.setSoTimeout(15000);
PrintWriter printwriter = new PrintWriter(new BufferedOutputStream(
fileNameConnect.getOutputStream()));
printwriter.println(s);
printwriter.close();
fileNameConnect.close();
Socket clientConnect = new Socket(serverIP, serverport2);
clientConnect.setSoTimeout(15000);
FileInputStream fileinputstream = new FileInputStream(file);
DataOutputStream dataoutputstream = new DataOutputStream(new
BufferedOutputStream(clientConnect.getOutputStream()));
do {
byte abyte0[] = new byte[1024];
int i = fileinputstream.read(abyte0);
if (i == -1)
break;
dataoutputstream.write(abyte0, 0, i);
}
while (true);
fileinputstream.close();
dataoutputstream.close();
clientConnect.close();
file.delete(); //将文件删除
}
catch (Exception e) {
throw new Exception("发送文件" + s + "出错:" + e.toString());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -