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

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

?? 6.+

?? jSearch - turns search Engines into FIND engines - Programming in JAVA Copyright (C) 1999-2009 Hun
?? +
字號:
軟件源代碼清單

*由于源代碼太長,這里只貼出核心搜索線程SearchThread的源代碼,其它代碼請參看:JSApplet.java和SearchThread.java

SearchThread.java
/*
 *   JSearch - turns search Engines into FIND engines - Programming in JAVA
 *   Copyright (C) 1999-2002  Hunt Lin
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *   Also add information on how to contact you by electronic and paper mail.
 */
 
import java.io.*;
import java.net.*;

public class SearchThread extends Thread {

	//要搜索的內容
	String srchChainConverted;
	//當前搜索線程的序號
	int srchNo;
	//搜索引擎的基本信息
	String srchBlkB, srchBlkE, srchEngName;
	
	//定義搜索當中要用到的變量
	String srchChainConvertedWithLevel;			//加入Level后的搜索串
	BufferedReader inURLStream;					
	char matchChars[]	= {' ', ' ', ' ', ' '};	//將與標志相符的字符
	char singleChar[]	= {' '};				//每次取得的字符
	String matchString;							//用作matchChars到String的轉化。
	int resultCount		= 0;					//當前線程找到的結果

	//準備搜集的信息
	String			resultDtlHead	= new String();			//用于存放結果集中的URL
	ResultsDetails	resultDtlBody	= new ResultsDetails();	//用于存放主題和預覽
	
	//核心搜索線程
	public void run() {
		try {
			for (int level=0; level < Integer.valueOf(JSApplet.smlCh.getSelectedItem()).intValue() && !JSApplet._stop; level++) {
				
				//用級數處理搜索串
				srchChainConvertedWithLevel = srchChainConverted.replace('`',(char)(48+level));
				//打開搜索的頁面流
				inURLStream = new BufferedReader(new InputStreamReader((new URL(srchChainConvertedWithLevel)).openStream()));
				//推進
				while (stepOneChar()) {
					//找到信息塊的開始:srchBlkB
					if (matchString.equals(srchBlkB)) {
						
						//準備收集信息
 						resultDtlHead = "";
						resultDtlBody.title = "";
						resultDtlBody.preview = "";

						//對信息塊進行分析,并取出URL,TITLE,PREVIEW
						analyseBlock();
						
						//將最后一個非結果集排除,因為最后一個信息塊的結束不可能也是頁面的結束。或如果當頁已結束則退出。
						if (!stepOneChar()) break;
						
						//適當休眠,讓PREVIEW有辦法進行!且讓其它搜索線程有辦法進行!并讓死鎖有時間釋放。并且如果有多個線程,這0.1秒的重疊后也就不算什么了。
						Thread.sleep(100);
						
						//對所得到的結果進行網址有效性驗證
						if (JSApplet.valurlCh.getSelectedItem().equals("Yes")) {
							if (!validUrl()) break;	//如果驗證不通過,則不將這個URL記入/顯示。
						}

						//將結果存放并顯示
						showResult();
						
					} //if
				} //while
				
				//關閉流
				inURLStream.close();
			}
			
		} catch(Exception ex) {
			JSApplet.messageTe.append("Exception: '" + ex.toString() + "' in SearchThread.run().\n");
		}
		
		//將活動連接減一,并適時地置按鈕的狀態。
		if (--JSApplet.actualSearchAllowed == 0) {
			JSApplet.buttonStatus(2);
			JSApplet._stop = true;
		}
	}
	
	//用傳入的變量對類中的變量進行賦值
	public SearchThread(String srchChainConverted, String srchBlkB, String srchBlkE, String srchEngName, int srchNo) {
		this.srchChainConverted	= srchChainConverted;
		this.srchBlkB			= srchBlkB;
		this.srchBlkE			= srchBlkE;
		this.srchEngName		= srchEngName;
		this.srchNo				= srchNo;
	}
	
	//向前推進一個字符
	boolean stepOneChar() {
		boolean _step = false;
		try {
			if (inURLStream.read(singleChar,0,1) != -1 && !JSApplet._stop) {
				matchChars[0]	= matchChars[1]; 
				matchChars[1]	= matchChars[2]; 
				matchChars[2]	= matchChars[3];
				matchChars[3]	= singleChar[0];
				matchString		= new String(matchChars); //不能用toString()!!!
				_step = true;
			}
		} catch(Exception ex) {
			JSApplet.messageTe.append("Exception: '" + ex.toString() + "' in SearchThread.stepOneChar().\n");
		}
		return _step;
	}

	
	//分析信息塊
	void analyseBlock() {
		/////取得網址
		//找到網址標志
		while (!matchString.equals("ref=")) {
			if (!stepOneChar()) break;
		};
		//跳過第一個'='
		if (!stepOneChar()) return;
		//處理并得到網址,主要是去掉"\""(引號)
		while (singleChar[0] != '>' && singleChar[0] != ' ') {
			//向前推進一個字符
			if (singleChar[0] != '\"') resultDtlHead += singleChar[0];
			if (!stepOneChar()) break;
		}
						
		//處理由于遇到' '提前退出時,繼續處理至'>'
		while (singleChar[0] != '>') {
			//向前推進一個字符
			if (!stepOneChar()) break;
		}
						
		/////取得標題
		//當遇到"</a>"結束。
		while (!matchString.equals("</a>")) {
			if (!stepOneChar()) break;
			//過濾"<"和">"之間的內容。
			if (singleChar[0] == '<') {
				while (singleChar[0] != '>') {
					if (!stepOneChar()) break;
				}
			}
			if (singleChar[0] != '>') resultDtlBody.title += singleChar[0];
		}
						
		/////取得預覽
		while (!matchString.equals(srchBlkE)) {
			if (!stepOneChar()) break;
			//過濾"<"和">"之間的內容。
			if (singleChar[0] == '<') {
				while (singleChar[0] != '>') {
					if (!stepOneChar()) break;
				}
			}
			if (singleChar[0] != '>' && singleChar[0] != '\r' && singleChar[0] != '\n') resultDtlBody.preview += singleChar[0];
		}
	}
	
	//網址有效性驗證
	boolean validUrl() {
		boolean vldOk = false;
		try {
			(new BufferedReader(new InputStreamReader((new URL(resultDtlHead)).openStream()))).close();
			vldOk = true;
		} catch(Exception ex) {
			JSApplet.messageTe.append("Exception: '" + ex.toString() + "' in SearchThread.validUrl().\n");
		}
		return vldOk;
	}

	//格式化結果集
	String formatString(String unFmtStr, int width) {
		String fmtStr;								//要返回的格式化的字符串。
		byte unFmtBytes[] = unFmtStr.getBytes();	//按byte對unFmtStr進行處理
		if (unFmtBytes.length > width) {
			fmtStr = new String(unFmtBytes, 0, width);
			//處理漢字可能被中間截斷的情況。
			if ((fmtStr.equals("")) || (fmtStr.getBytes().length < width)) fmtStr = (new String(unFmtBytes, 0, width-1)) + " ";
		} else {
			String addSpaces = "";	//需要填充的字符。
			for (int i = unFmtBytes.length; i < width; i ++) addSpaces += " ";
			fmtStr = unFmtStr + addSpaces;
		}
		return fmtStr;
	}
	
	//顯示結果信息
	void showResult() {
		synchronized (JSApplet.resultTable) {synchronized (JSApplet.resultIndex) {synchronized (JSApplet.resultLi) {synchronized (JSApplet.statusLi) {synchronized (JSApplet.totalNumLa) {
			if (!JSApplet.resultTable.containsKey(resultDtlHead) && !JSApplet.resultIndex.contains(resultDtlHead)) {
				
				//一定要新建一個才能放進HashTable中!
				ResultsDetails resultDtlBody	= new ResultsDetails();
				resultDtlBody.title				= this.resultDtlBody.title;
				resultDtlBody.preview			= this.resultDtlBody.preview;
				
				//將結果放入JSApplet的resultTable/resultIndex中共用。
				JSApplet.resultTable.put(resultDtlHead, resultDtlBody);	//必須要用獨立的resultDtlBody對象才能放入HashTable
				JSApplet.resultIndex.addElement(resultDtlHead);
								
				//將結果顯示于JSApplet中,要對所得結果用formatString進行必要的格式化。
				JSApplet.resultLi.add(formatString(resultDtlBody.title, 42) + " | " + formatString(resultDtlHead, 40) + " | from: " + srchEngName);
				JSApplet.totalNumLa.setText(String.valueOf(Integer.valueOf(JSApplet.totalNumLa.getText()).intValue() + 1));
								
				//在STATUS中顯示當前搜索狀況
				JSApplet.statusLi.replaceItem("Results:" + String.valueOf(++resultCount) + " From:" + srchEngName + " Received.", srchNo);
			}
		}}}}}
	}
	
	//析構函數
	public void finalize() throws Throwable {
		try {
			//人工退出,要將inURLStream關閉
			if (this != null) if (inURLStream != null) inURLStream.close();
		} catch (Exception ex) {
			JSApplet.messageTe.append("Exception: '" + ex.toString() + "' in SearchThread.finalize().\n");
		}
		super.finalize();
		System.gc();
		System.runFinalization();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆成人在线观看| 国产精品久久久久久久浪潮网站| 色噜噜狠狠成人网p站| 色老汉av一区二区三区| 日本精品裸体写真集在线观看| 成人福利视频网站| 色婷婷综合久久久| 在线观看亚洲专区| 欧美一区二区三区免费在线看| 欧美精品在线一区二区三区| 在线观看91av| 久久久777精品电影网影网| 亚洲欧洲精品一区二区三区| 亚洲免费av高清| 午夜精品一区二区三区免费视频| 日本欧美大码aⅴ在线播放| 久久精品国产99国产| 国产精品香蕉一区二区三区| 成人爽a毛片一区二区免费| 日本久久电影网| 2024国产精品| 亚洲一区二区三区自拍| 精品一区二区三区蜜桃| 色94色欧美sute亚洲线路一久| 9191成人精品久久| 国产精品夫妻自拍| 激情综合亚洲精品| 一区av在线播放| 亚洲第一激情av| 成人va在线观看| 欧美一级国产精品| 悠悠色在线精品| 岛国av在线一区| 精品免费视频.| 亚洲成人免费在线| 91丝袜高跟美女视频| 国产欧美一区二区三区网站| 美国欧美日韩国产在线播放| 欧美日韩中文字幕一区| 亚洲欧美视频在线观看视频| 国产成人小视频| 久久尤物电影视频在线观看| 五月激情丁香一区二区三区| 一本到不卡精品视频在线观看| 亚洲国产精品国自产拍av| 精品一区二区三区久久久| 日韩免费视频一区| 久久国产剧场电影| 欧美精品一区二区三区视频| 日韩不卡一区二区| 日韩一区二区三区视频在线| 日韩国产在线观看一区| 91精品国产综合久久香蕉的特点| 亚洲高清在线视频| 69久久夜色精品国产69蝌蚪网| 亚洲国产精品久久艾草纯爱| 成人丝袜视频网| 久久久国产精华| 99久久亚洲一区二区三区青草| 国产精品日产欧美久久久久| 99re66热这里只有精品3直播 | 91亚洲男人天堂| 亚洲一级二级三级| 欧美一区二区三区播放老司机| 日韩精品久久久久久| 精品久久久三级丝袜| 国产成人免费视频一区| 一区二区三区在线视频观看| 欧美影院一区二区| 久久精品国产亚洲a| 国产精品福利一区| 欧美日韩视频在线观看一区二区三区| 亚洲午夜在线视频| 精品粉嫩超白一线天av| 91亚洲精品乱码久久久久久蜜桃 | 欧美日韩一区二区欧美激情| 麻豆一区二区99久久久久| 国产精品久久久久久久岛一牛影视| 欧美色大人视频| 岛国精品在线播放| 麻豆高清免费国产一区| 久久久久久电影| 97精品国产露脸对白| 日韩电影在线一区| 中文字幕人成不卡一区| 69堂精品视频| 欧美色精品在线视频| 国产成人鲁色资源国产91色综| 日韩专区欧美专区| 亚洲丝袜美腿综合| 国产亚洲欧美日韩日本| 91精品国产品国语在线不卡| av综合在线播放| 国产精品一二三四| 久久99精品国产麻豆婷婷 | 成人免费小视频| 久久久综合视频| 日韩三级在线观看| 欧美揉bbbbb揉bbbbb| 国产日韩亚洲欧美综合| 欧美年轻男男videosbes| 成人午夜免费电影| 成人黄色大片在线观看| 高清不卡一二三区| 国产99久久久国产精品潘金| 国产九色精品成人porny | 免费欧美高清视频| 日本系列欧美系列| 蜜臀久久久99精品久久久久久| 日日夜夜精品视频天天综合网| 亚洲成在人线在线播放| 欧美大片国产精品| 精品国产第一区二区三区观看体验| 欧美一区二区黄| 精品美女被调教视频大全网站| 欧美精品一区二区三区在线播放| 精品国产免费一区二区三区四区 | 狠狠色丁香婷婷综合| 国产成人午夜99999| 99国产精品久久久久久久久久 | 国产麻豆精品一区二区| 国产成人啪免费观看软件| 不卡一卡二卡三乱码免费网站| 91欧美一区二区| 91精品国产综合久久国产大片| 欧美成人综合网站| 中文字幕一区av| 免费观看在线色综合| 高清国产午夜精品久久久久久| 91福利国产成人精品照片| 日韩一区二区三区视频| 日本一区二区不卡视频| 免费人成精品欧美精品| 99久久er热在这里只有精品66| 4438x亚洲最大成人网| 久久精品欧美一区二区三区麻豆| 亚洲裸体在线观看| 久久国产精品第一页| 欧美亚洲日本国产| 中文字幕精品三区| 国产在线麻豆精品观看| 欧美日韩三级一区二区| 国产婷婷色一区二区三区| 亚洲人一二三区| 国产91精品入口| 欧美xxxx在线观看| 天堂成人国产精品一区| 99久久精品99国产精品| 久久你懂得1024| 美腿丝袜一区二区三区| 欧美一区午夜精品| 天堂一区二区在线| 欧美性猛片aaaaaaa做受| 自拍偷拍亚洲激情| 成人99免费视频| 日韩理论在线观看| www.av精品| 亚洲女人****多毛耸耸8| 成人一级视频在线观看| 日本一区二区成人| 国产经典欧美精品| 2023国产精华国产精品| 久久 天天综合| 久久婷婷成人综合色| 国产精品一区二区三区四区| www久久精品| 国产不卡高清在线观看视频| 国产视频911| 国产露脸91国语对白| 国产精品久久久久毛片软件| 97国产精品videossex| 一区二区三区国产豹纹内裤在线| 欧美专区亚洲专区| 男人的j进女人的j一区| 国产三级久久久| 在线观看中文字幕不卡| 久久er精品视频| 中文字幕一区二区三区四区不卡 | 亚洲视频小说图片| 成人av在线播放网址| 国产精品色眯眯| 91精品国产福利在线观看| 国产精品一线二线三线| 一区二区三区波多野结衣在线观看 | 国产成人自拍在线| 中文字幕亚洲视频| 欧美一区二区三区在| 波多野结衣在线一区| 美女诱惑一区二区| 国产精品国产三级国产普通话三级 | 亚洲图片欧美色图| 国产精品系列在线| 日韩午夜电影在线观看| 色综合久久久网| 美女性感视频久久| 亚洲一级二级三级在线免费观看| 亚洲国产精品黑人久久久| 亚洲精品一区二区三区在线观看| 日本高清视频一区二区| 春色校园综合激情亚洲|