⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netsenderdaemon.java

📁 用swt作的一个类似飞鸽一样的局域网通信工具
💻 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 + -