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

📄 normalsend.java

📁 飞鸽java源代码
💻 JAVA
字号:
/*
 *	Normal Send Class
 *		1997/10/22 (C) Copyright T.Kazawa(Digitune)
 *  Download by http://www.codefans.net
 */

package ipmsg;

import java.awt.AWTEventMulticaster;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import java.net.DatagramSocket;
import java.util.Enumeration;
import java.util.ResourceBundle;
import java.util.Hashtable;
import java.io.UnsupportedEncodingException;

public class NormalSend extends IPMSend {
	private Hashtable listeners = new Hashtable();
	private int wait = 3000, retry = 3;
	private boolean reply = false;
	
	public synchronized void addIPMComListener(IPMComListener listener) {
		listeners.put(listener, listener);
	}
	
	public synchronized void removeIPMComListener(IPMComListener listener) {
		listeners.remove(listener);
	}
	
	public void run() {
		for (int i = retry; i != 0; i--) {
			send(dsock, spack, saddr);
			try {
				sleep(wait);
			} catch (InterruptedException ex) {}
			if (reply)
				return;
			spack.setCommand(spack.getCommand() | IPMsg.IPMSG_RETRYOPT);
		}
		IPMComEvent ipmce = new IPMComEvent(this, dsock.getLocalPort()
			, spack, saddr);
		synchronized (this) {
			for (Enumeration enum = listeners.elements()
				; enum.hasMoreElements(); ) {
				IPMComListener listener
					= (IPMComListener) enum.nextElement();
				listener.receive(ipmce);
			}
		}
	}
	
	public void receiveReply() {
		reply = true;
	}
	
	public NormalSend(DatagramSocket argsock, IPMPack argpack
		, IPMAddress argaddr) {
		super(argsock, argpack, argaddr);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -