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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ipmproxy.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());	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女爱视频在线| 91官网在线免费观看| 日韩你懂的电影在线观看| 亚洲成a人v欧美综合天堂| 欧美色图在线观看| 亚洲成av人片一区二区梦乃| 精品视频免费看| 日本美女一区二区| 精品免费日韩av| 国产99久久久国产精品潘金 | 久久综合999| 国产成人综合在线播放| 国产精品国产三级国产aⅴ无密码| 成人毛片在线观看| 一区二区三区高清| 51久久夜色精品国产麻豆| 狠狠狠色丁香婷婷综合久久五月| 久久精品亚洲乱码伦伦中文| aaa国产一区| 天堂蜜桃一区二区三区| 国产亚洲一区字幕| 一本久道久久综合中文字幕| 亚洲影院免费观看| 亚洲精品在线一区二区| 99亚偷拍自图区亚洲| 日韩专区一卡二卡| 国产蜜臀97一区二区三区| 欧美日韩一本到| 国内精品写真在线观看| 亚洲欧美日韩在线不卡| 91精品久久久久久蜜臀| 成人av动漫在线| 视频一区二区不卡| 欧美激情艳妇裸体舞| 51精品国自产在线| 成人97人人超碰人人99| 免费观看在线色综合| 中文字幕免费不卡| 91精品中文字幕一区二区三区| 国产成人av自拍| 日日摸夜夜添夜夜添国产精品| 国产色综合一区| 欧美日韩午夜影院| 99v久久综合狠狠综合久久| 日本大胆欧美人术艺术动态| 国产精品国产自产拍高清av| 日韩你懂的在线播放| 91免费视频大全| 精品一区在线看| 午夜一区二区三区在线观看| 国产精品情趣视频| 精品日韩一区二区三区| 欧美性极品少妇| 99久久精品国产一区二区三区| 免费视频一区二区| 亚洲午夜久久久久中文字幕久| 国产精品国产成人国产三级| 欧美电影免费提供在线观看| 欧美日韩一区中文字幕| 色综合激情久久| 国产91精品一区二区麻豆网站| 蜜桃av一区二区在线观看 | 欧美视频一区二区三区在线观看| 国产成人亚洲综合a∨猫咪| 久99久精品视频免费观看| 亚洲图片欧美色图| 依依成人综合视频| 亚洲日本青草视频在线怡红院| 久久精品一区八戒影视| 久久日韩精品一区二区五区| 91麻豆精品国产91久久久使用方法| 日本丶国产丶欧美色综合| 99久久精品国产导航| 成人黄色777网| 成人午夜免费av| 粉嫩嫩av羞羞动漫久久久| 国产米奇在线777精品观看| 激情另类小说区图片区视频区| 免费观看91视频大全| 蜜桃一区二区三区在线| 精品中文字幕一区二区| 激情国产一区二区| 国产精品亚洲成人| 国产一区二区91| 国产成人精品免费看| 成人aa视频在线观看| 91小视频在线| 91国产成人在线| 欧美人狂配大交3d怪物一区| 91精品免费观看| 久久伊人蜜桃av一区二区| 久久精品在线免费观看| 国产精品三级久久久久三级| 亚洲视频网在线直播| 一个色在线综合| 日韩精品三区四区| 国产在线视频一区二区三区| 国产成人精品一区二区三区网站观看| 成人性生交大片免费看中文| 97精品国产97久久久久久久久久久久 | 久久久91精品国产一区二区三区| 国产日韩欧美不卡在线| 亚洲欧美一区二区三区极速播放| 亚洲国产日韩在线一区模特| 美女视频网站久久| 丰满岳乱妇一区二区三区 | 欧美日韩精品欧美日韩精品一综合| 欧美三级日韩在线| 精品国产一二三区| 国产精品盗摄一区二区三区| 一区二区三区在线观看国产| 蜜桃av一区二区在线观看| 成人久久久精品乱码一区二区三区 | 色久优优欧美色久优优| 91精品午夜视频| 国产喷白浆一区二区三区| 一区二区成人在线| 狠狠狠色丁香婷婷综合激情| 一本大道久久a久久综合| 日韩欧美国产成人一区二区| 国产精品视频yy9299一区| 午夜在线成人av| 粉嫩蜜臀av国产精品网站| 欧美二区三区的天堂| 国产精品天美传媒沈樵| 亚洲1区2区3区4区| 不卡一区二区三区四区| 91精品一区二区三区久久久久久| 日本一区二区三区高清不卡| 日日摸夜夜添夜夜添亚洲女人| 成人黄色在线视频| 日韩欧美电影一二三| 一区二区三区加勒比av| 国产超碰在线一区| 欧美一区二区视频在线观看2020 | 色妞www精品视频| 欧美电视剧在线看免费| 亚洲精品乱码久久久久| 国产精品综合二区| 91精品免费观看| 亚洲已满18点击进入久久| 国产999精品久久久久久| 日韩一级黄色片| 亚洲国产裸拍裸体视频在线观看乱了| 成人影视亚洲图片在线| 日韩欧美国产一区二区三区 | 国产精品欧美精品| 青草av.久久免费一区| 色丁香久综合在线久综合在线观看| 2023国产精品视频| 天天色 色综合| 色悠久久久久综合欧美99| 国产女主播在线一区二区| 精品一区二区免费看| 欧美一区二区三区视频在线| 亚洲动漫第一页| 色噜噜狠狠色综合中国| 国产精品第四页| av在线播放不卡| 国产日本欧洲亚洲| 国产麻豆视频一区二区| 精品福利av导航| 麻豆免费精品视频| 欧美一区二区三区视频免费| 日韩精品亚洲一区| 制服.丝袜.亚洲.中文.综合| 午夜精品影院在线观看| 欧洲精品在线观看| 亚洲一区二区在线免费观看视频| 色婷婷综合激情| 亚洲精品老司机| 欧美午夜精品久久久| 亚洲国产成人va在线观看天堂| 在线亚洲高清视频| 亚洲一区二区精品视频| 欧美日韩高清在线| 日本在线不卡一区| 欧美va亚洲va香蕉在线| 国产综合成人久久大片91| 久久久www成人免费无遮挡大片| 韩国午夜理伦三级不卡影院| 精品福利视频一区二区三区| 国产精品一区二区三区乱码| 国产精品入口麻豆九色| 99国产欧美另类久久久精品 | 久久久.com| 9久草视频在线视频精品| 亚洲乱码国产乱码精品精的特点| 日本韩国视频一区二区| 亚洲国产精品综合小说图片区| 欧美日本在线看| 久久99日本精品| 国产午夜亚洲精品午夜鲁丝片| 成人动漫av在线| 亚洲精品视频在线观看免费| 51精品国自产在线| 国产精品99久| 一区二区三区不卡视频| 日韩欧美的一区| 成人97人人超碰人人99|