亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ipmproxy.java

?? 飛鴿傳書java實現源代碼,飛鴿傳書java實現源代碼,飛鴿傳書java實現源代碼,
?? JAVA
字號:
/* *	IP Messenger Proxy Class *		1997/10/16 (C) Copyright T.Kazawa (Digitune) */package ipmsg;import JP.digitune.util.ByteBuffer;import JP.digitune.util.ResourceProperties;import java.io.IOException;import java.io.InputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.net.Socket;import java.net.ServerSocket;import java.net.DatagramSocket;import java.net.DatagramPacket;import java.net.SocketException;import java.net.UnknownHostException;import java.net.InetAddress;import java.util.Enumeration;import java.util.Hashtable;import java.util.Random;public class IPMProxy implements IPMComListener {	private static final long KEEPALIVE_INTERVAL = 30000;	public static final int PROXY_PORT = 2425;		IPMsg ipmsg;	boolean active = false;	boolean broadcast_all = false;	InetAddress localaddr;	InetAddress proxyaddr;	DataOutputStream dout;	Hashtable douts = new Hashtable();	Hashtable dsocks = new Hashtable();	Hashtable IPtoPORT = new Hashtable();	Hashtable PORTtoIP = new Hashtable();		class Accept extends Thread {		public Accept() {			this.start();		}				public void run() {			ServerSocket ss = null;			try {				ss = new ServerSocket(PROXY_PORT, 1024, localaddr);				while (true) {					Socket sock = ss.accept();					connect(sock);					ipmsg.refreshList();				}			} catch (IOException ex) {}			try {				if (ss != null)					ss.close();			} catch (IOException ex) {}		}	}		class Listen extends Thread {		private DataInputStream din;				public Listen(DataInputStream argin) {			din = argin;			this.start();		}				public void run() {			byte[] buf = new byte[8192];			IPMByteBuffer ipmbb = new IPMByteBuffer();			outer:			while (!isInterrupted()) {				while (!ipmbb.eop()) {					int count = 0;					try {						count = din.read(buf);					} catch (IOException ex) {						break outer;					}					if (count == -1)						break outer;					ipmbb.append(buf, 0, count);				}				byte[] tmpbuf = ipmbb.getBytes();				if (tmpbuf.length == 0)					continue; // keep alive.				IPMProxyEvent ipmpe = new IPMProxyEvent(this, tmpbuf);				accept(ipmpe);			}			try {				din.close();			} catch (IOException ex) {}		}	}	class KeepAlive extends Thread {		public KeepAlive() {			this.start();		}		public void run() {			try {				while (!isInterrupted()) {					sleep(KEEPALIVE_INTERVAL);					while (active) {						try {							if (dout != null) {								synchronized (dout) {									dout.write(new byte[]{0, 0, 0});									dout.flush();								}								break;							}						} catch (IOException ex) {							try {								if (dout != null)									dout.close();							} catch (IOException exx) {}							dout = null;						}						connectProxy();					}				}			} catch (Throwable ex) {}		}	}	void connect(Socket sock) throws IOException {		DataOutputStream tmpdout			= new DataOutputStream(sock.getOutputStream());		douts.put(tmpdout, tmpdout);		DataInputStream tmpdin			= new DataInputStream(sock.getInputStream());		new Listen(tmpdin);	}		synchronized void accept(IPMProxyEvent ipmpe) {		DatagramSocket dsock;		if (IPtoPORT.containsKey(ipmpe.getFromIPMAddress().toString())) {			dsock = (DatagramSocket) dsocks.get(				IPtoPORT.get(ipmpe.getFromIPMAddress().toString()));		} else {			int port = 0;			Random rand = new Random(System.currentTimeMillis());			while (true) {				/* 49154 - 65534 */				port = (int) (rand.nextLong() % 8192 + 57342);				if (PORTtoIP.containsKey(new Integer(port)))					continue;				try {					dsock = new DatagramSocket(port);				} catch (SocketException ex) {					continue;				}				break;			}			IPtoPORT.put(ipmpe.getFromIPMAddress().toString()				, new Integer(port));			PORTtoIP.put(new Integer(port)				, ipmpe.getFromIPMAddress().toString());			dsocks.put(new Integer(port), dsock);			IPMRecv tmprecv = new IPMRecv(dsock);			tmprecv.addIPMComListener(this);			tmprecv.start();		}		try {			if (ipmpe.getToIPMAddress().getInetAddress().equals(				InetAddress.getByName("255.255.255.255")) && broadcast_all) {				IPMAddress[] ipma = ipmsg.getBroadcastAddr();				for (int i = 0; i < ipma.length; i++) {					DatagramPacket dp = new DatagramPacket(						ipmpe.getPack().getBytes(),						ipmpe.getPack().getBytes().length,						ipma[i].getInetAddress(),						ipma[i].getPort());					dsock.send(dp);				}			} else {				DatagramPacket dp = new DatagramPacket(					ipmpe.getPack().getBytes(),					ipmpe.getPack().getBytes().length,					ipmpe.getToIPMAddress().getInetAddress(),					ipmpe.getToIPMAddress().getPort());				dsock.send(dp);			}		} catch (IOException ex) {			ex.printStackTrace();		}	}	synchronized void connectProxy() throws Exception {		if (dout != null)			return;		Socket sock = new Socket(proxyaddr, PROXY_PORT, localaddr, PROXY_PORT);		dout = new DataOutputStream(sock.getOutputStream());		DataInputStream tmpdin = new DataInputStream(sock.getInputStream());		new Listen(tmpdin);	}		synchronized void write(byte[] buf) {		boolean done = false;		while (dout != null && !done) {			synchronized (dout) {				try {					dout.write(buf);					dout.flush();					done = true;				} catch (IOException ex) {					try {						dout.close();					} catch (IOException exx) {}					dout = null;				}			}			if (active && !done) {				try {					connectProxy();				} catch (Exception ex) {					break;				}			}		}		Enumeration enum = douts.keys();		while (enum.hasMoreElements()) {			DataOutputStream tmpdout = (DataOutputStream) enum.nextElement();			try {				tmpdout.write(buf);				tmpdout.flush();			} catch (IOException ex) {				try {					tmpdout.close();				} catch (IOException exx) {}				douts.remove(tmpdout);			}		}	}		public IPMProxy(IPMsg argipmsg, InetAddress argproxy, boolean argball) {		ipmsg = argipmsg;		broadcast_all = argball;		localaddr = ipmsg.getLocalAddress();		new Accept();		if (argproxy == null)			active = false;		else {			active = true;			proxyaddr = argproxy;			try {				connectProxy();			} catch (Exception ex) {}			new KeepAlive();		}	}		public IPMProxy(IPMsg argipmsg) {		this(argipmsg, null, false);	}		public void addBroadcastPort(int port) {		PORTtoIP.put(new Integer(port), "255.255.255.255:"+port);	}		public void receive(IPMComEvent ipme) {		try {			if (ipme.getIPMAddress().getInetAddress()				.equals(InetAddress.getLocalHost())	&& PORTtoIP				.get(new Integer(ipme.getIPMAddress().getPort())) != null)				return;		} catch (UnknownHostException ex) {}		if (IPtoPORT.get(ipme.getIPMAddress().toString()) != null)			return;		ByteBuffer bb = new ByteBuffer();		String prefix = ipme.getIPMAddress().toString() + ":"			+ (String) PORTtoIP.get(new Integer(ipme.getLocalPort())) + ":";		bb.append(prefix.getBytes());		bb.append(ipme.getPack().getBytes());		bb.append(new byte[]{0, 0, 0});		write(bb.getBytes());	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩大陆在线| 91免费看视频| 视频在线在亚洲| 亚洲一卡二卡三卡四卡无卡久久| 国产精品久久久久一区二区三区共| 久久先锋影音av| 欧美变态口味重另类| 精品处破学生在线二十三| 日韩精品一区国产麻豆| 欧美电影免费观看高清完整版在| 欧美xxxxxxxxx| 久久天天做天天爱综合色| 国产色综合久久| 国产精品网站在线| 亚洲女女做受ⅹxx高潮| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲综合在线视频| 日韩高清一级片| 国产一区二区三区国产| 成人av手机在线观看| 欧美亚一区二区| 日韩欧美国产系列| 国产精品无码永久免费888| 一区2区3区在线看| 美女一区二区在线观看| 国产成人无遮挡在线视频| 99久久婷婷国产| 欧美精品成人一区二区三区四区| 欧美大片一区二区| 国产精品久久久久久久蜜臀| 亚洲午夜久久久久久久久电影网| 亚洲国产一区视频| 91丨porny丨最新| 亚洲国产一区二区视频| 激情欧美一区二区三区在线观看| 国产老妇另类xxxxx| 91激情在线视频| 欧美变态tickle挠乳网站| 亚洲欧美aⅴ...| 久久国产精品72免费观看| www.成人网.com| 日韩精品一区二区三区中文不卡 | 91精品91久久久中77777| 精品国产一区二区三区久久久蜜月| 国产女主播一区| 午夜精品免费在线观看| 成人av在线网| 精品99久久久久久| 日韩二区三区在线观看| 91麻豆自制传媒国产之光| 精品日韩成人av| 亚洲成国产人片在线观看| 成人av免费在线观看| 久久一二三国产| 日韩电影一二三区| 欧美在线免费观看视频| 一区在线观看免费| 国产福利精品导航| 欧美成人video| 日韩1区2区3区| 欧美日韩亚洲综合| 亚洲欧洲日韩综合一区二区| 国产福利一区二区| 精品国产一区二区三区忘忧草| 日韩在线观看一区二区| 在线免费不卡视频| 亚洲丝袜精品丝袜在线| 不卡欧美aaaaa| 国产精品视频免费看| 国产精一品亚洲二区在线视频| 在线综合视频播放| 婷婷久久综合九色综合绿巨人| 欧美亚洲一区二区在线观看| 亚洲在线中文字幕| 欧美午夜精品免费| 亚洲在线成人精品| 欧美三区在线观看| 天天操天天干天天综合网| 欧美精品在线一区二区| 午夜精品福利视频网站| 欧美日韩在线播放| 日本色综合中文字幕| 欧美一区二区三区小说| 美腿丝袜一区二区三区| 精品福利一区二区三区免费视频| 久久99九九99精品| 久久久一区二区| eeuss国产一区二区三区| 亚洲欧美一区二区不卡| 欧美日韩一区二区三区在线看| 亚洲成人www| 欧美成人乱码一区二区三区| 国产成人午夜片在线观看高清观看| 中文字幕不卡在线观看| 91视频你懂的| 性久久久久久久| 精品国产免费久久| 99久久精品一区二区| 亚洲一区二区成人在线观看| 欧美一区二区久久| 国产成人免费在线观看不卡| 亚洲婷婷综合色高清在线| 欧美精品精品一区| 成人三级在线视频| 亚洲电影第三页| 久久久久久久久久久黄色| 91丨九色丨黑人外教| 久久国产婷婷国产香蕉| 1区2区3区国产精品| 3atv一区二区三区| 99久久免费精品高清特色大片| 日韩影院免费视频| 国产精品不卡视频| 日韩视频国产视频| 99re8在线精品视频免费播放| 日韩二区三区四区| 中文字幕制服丝袜成人av| 欧美丰满少妇xxxxx高潮对白| 豆国产96在线|亚洲| 日本视频一区二区三区| 亚洲三级电影网站| 欧美激情中文字幕| 日韩欧美你懂的| 91日韩在线专区| 国产一区二区三区在线看麻豆 | 欧美日韩国产系列| 丁香另类激情小说| 美国十次综合导航| 亚洲一区在线播放| 中文字幕一区二区三区在线播放 | 亚洲一区二区三区激情| 久久精品视频网| 日韩精品综合一本久道在线视频| 欧美视频中文一区二区三区在线观看| 国产一区亚洲一区| 日韩av成人高清| 亚洲.国产.中文慕字在线| 亚洲视频狠狠干| 国产精品美女久久久久久久久久久 | 高清在线成人网| 久久精品99国产国产精| 亚洲18色成人| 亚洲成人777| 香蕉久久夜色精品国产使用方法 | 天天av天天翘天天综合网色鬼国产| 中文字幕一区二区在线播放| 国产亚洲综合性久久久影院| 日韩一二在线观看| 在线电影欧美成精品| 欧美色综合天天久久综合精品| 99精品国产99久久久久久白柏| 成人在线一区二区三区| 高清不卡在线观看| 成人av网站免费| 99久久婷婷国产综合精品| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧洲视频一区二区| 91福利在线免费观看| 色婷婷av一区二区三区gif | 国产在线麻豆精品观看| 麻豆精品新av中文字幕| 精品制服美女丁香| 国产在线精品一区二区| 粉嫩在线一区二区三区视频| 丁香五精品蜜臀久久久久99网站| 丰满亚洲少妇av| 色哟哟亚洲精品| 欧美日韩不卡在线| 精品国产凹凸成av人导航| 久久久久久久久久久久久久久99| 中文字幕第一区综合| 亚洲图片你懂的| 丝袜诱惑制服诱惑色一区在线观看 | 91黄色免费网站| 欧美日韩一卡二卡| 精品国产电影一区二区| 中文字幕一区二区三区在线观看| 亚洲国产成人高清精品| 青青草国产精品亚洲专区无| 国产成a人亚洲精品| 91国产成人在线| 精品福利二区三区| 亚洲激情五月婷婷| 精品一二三四区| 色噜噜狠狠色综合中国| 日韩午夜电影av| 国产精品美女视频| 男女视频一区二区| av亚洲精华国产精华精| 欧美一级午夜免费电影| 国产欧美一二三区| 香蕉成人伊视频在线观看| 国产成人午夜视频| 欧美丰满少妇xxxxx高潮对白| 国产精品人成在线观看免费| 亚洲一区二区av在线| 成人午夜视频福利| 欧美一区二区三区男人的天堂| 国产精品成人免费在线| 久久精品国产免费看久久精品|