📄 netsenderdaemon.java
字号:
package thread.sender;
import java.io.File;
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.Enumeration;
import java.util.Hashtable;
import main.NetTransfer;
import extend.Configuration;
import view.sender.NFS_FileHandleItem;
import CreateFrame.CreateErrorFrame;
public class NetSenderDaemon extends SenderThread {
private String message;
private String hostName;
private String sendPackage = null;
private Hashtable selectedFiles;
private Hashtable threadGroup = new Hashtable();
public NetSenderDaemon(String destAddress,String hostName, int port, String message,
Hashtable selectedFiles) {
super(destAddress, port);
this.message = message;
this.hostName = hostName;
this.selectedFiles = selectedFiles;
}
public void run() {
try {
Configuration rc = new Configuration(NetTransfer.SetupFile);
String envelop = rc.getValue("Envelop");
String confirm = rc.getValue("Confirm");
if (envelop.toUpperCase().equals("FALSE")) envelop = "F";
else envelop = "T";
if (confirm.toUpperCase().equals("TRUE")) confirm = "T";
else confirm = "F";
sendPackage = "OpenFrame|v1.3|"+envelop+"|"+confirm+"|"+this.hostName+"|"+this.message+"|";
Enumeration enu = selectedFiles.elements();
while (enu.hasMoreElements()) {
File f = (File) enu.nextElement();
if (f.isDirectory()) {
sendPackage = sendPackage + "AddFolder|" + f.hashCode() + "|"
+ f.getName() + "|"
+ NFS_FileHandleItem.getFolderSize(f) + "|";
} else {
sendPackage = sendPackage+"AddFile|" + f.hashCode() + "|"
+ f.getName() + "|" + f.length() + "|";
}
}
writeUTF(sendPackage);
boolean connect = true;
while (connect) {
cmdList = splitToken(readUTF());
if (equParam(0,"ConfirmEnd")){
CreateErrorFrame thread = new CreateErrorFrame();
String ip = this.socket.getInetAddress().getHostAddress();
thread.setMessage(ip+" \nAlready received.");
thread.setErrorPicture(view.error.ErrorFrame.ALERM);
thread.start();
}else if (equParam(0, "ReqFile")) {
int port = Integer.valueOf(getParam(4)).intValue();
int hashFile = Integer.valueOf(getParam(1)).intValue();
String filePath = getParam(2);
int NTRHandle = Integer.valueOf(getParam(3)).intValue();
NetSenderThread senderSession = new NetSenderThread(destAddress, port,
hashFile, filePath, NTRHandle, selectedFiles,
"PutFile");
senderSession.setActive(true);
senderSession.start();
threadGroup.put(new Integer(NTRHandle), senderSession);
} else if (equParam(0, "ReqDir")) {
int port = Integer.valueOf(getParam(4)).intValue();
int hashFile = Integer.valueOf(getParam(1)).intValue();
String filePath = getParam(2);
int NTRHandle = Integer.valueOf(getParam(3)).intValue();
NetSenderThread senderSession = new NetSenderThread(destAddress, port,
hashFile, filePath, NTRHandle, selectedFiles,
"PutFolder");
senderSession.setActive(true);
senderSession.start();
threadGroup.put(new Integer(NTRHandle), senderSession);
} else if (equParam(0, "Cancel")) {
int NTRHandle = Integer.valueOf(getParam(1)).intValue();
NetSenderThread senderSession = (NetSenderThread) threadGroup.get(new Integer(NTRHandle));
senderSession.setActive(false);
} else if (equParam(0, "Disconnect")) {
connect = false;
closeSocket();
//System.exit(0);
}
}
} catch (UnknownHostException e) {
CreateErrorFrame thread = new CreateErrorFrame();
thread.setMessage("The host & address incorrect");
thread.start();
e.printStackTrace();
} catch (IOException e) {
try {
closeSocket();
} catch (IOException e1) {
CreateErrorFrame thread = new CreateErrorFrame();
thread.setMessage("Close socket failed");
thread.start();
e1.printStackTrace();
}
CreateErrorFrame thread = new CreateErrorFrame();
thread.setMessage("Lose host connection");
thread.start();
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -