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

📄 dischandler.java

📁 基于jxta的文件共享和聊天系统源代码,下载下来分析吧
💻 JAVA
字号:
package catalog_search;import net.jxta.peergroup.PeerGroup;import java.io.ByteArrayInputStream;import java.util.Vector;import org.w3c.dom.Document;import catalog_exchange.CatalogManager;import net.jxta.impl.protocol.ResolverQuery;import net.jxta.impl.protocol.ResolverResponse;import net.jxta.protocol.ResolverQueryMsg;import net.jxta.protocol.ResolverResponseMsg;import net.jxta.resolver.QueryHandler;import net.jxta.resolver.ResolverService;import net.jxta.id.ID;public class DiscHandler implements QueryHandler {		private ResolverService resSvc;	private Vector registeredListeners=new Vector();	private String handlerName;	private CatalogManager catMan;	private Document doc;	private ID pid;	private Vector []pids;	private boolean itr=false;			public DiscHandler (ResolverService r,Vector rl,String hn,ID i)	{		resSvc=r;				 	registeredListeners=rl;	 	handlerName=hn;		 	catMan=new CatalogManager(10);	 	doc=null;	 	pid=i;	 	pids=new Vector[2];	 		}		public int processQuery(ResolverQueryMsg rqm)	{				System.out.println("CatalogSearchDiscQuery received");		CatalogSearchDiscQuery csdq= new CatalogSearchDiscQuery(new ByteArrayInputStream(rqm.getQuery().getBytes()));		if(csdq.getSearchCatalog().equals("Local Peer Catalog"))		 return 0;						doc=catMan.getCatalog(csdq.getSearchCatalog());		if (doc.getChildNodes()!=null)			{						CatalogSearchDiscResponse csdr=new CatalogSearchDiscResponse(pid,csdq.getSearchCatalog(),true);				ResolverResponse resp=new ResolverResponse(handlerName,null,rqm.getQueryId(),csdr.toString());				resSvc.sendResponse(rqm.getSrc(),resp);				return ResolverService.OK;			}		else 			{			 	CatalogSearchDiscResponse csdr=new CatalogSearchDiscResponse(pid,csdq.getSearchCatalog(),false);				ResolverResponse resp=new ResolverResponse(handlerName,null,rqm.getQueryId(),csdr.toString());				resSvc.sendResponse(rqm.getSrc(),resp);				return ResolverService.OK;			}					}		public void processResponse(ResolverResponseMsg rrm)	{		CatalogSearchDiscResponse csdr= new CatalogSearchDiscResponse(new ByteArrayInputStream(rrm.getResponse().getBytes()));		System.out.println("CatalogSearchDiscResponse received");				String temp=null;		if(pids[1]!=null)			{				temp=(String)pids[1].lastElement();				if(temp.compareTo(csdr.getSearchCatalog())!=0)				{										pids[0].add(csdr.getId());					pids[1].add(csdr.getSearchCatalog());									}				itr=true;			}		else		{						pids[0]=new Vector();			pids[1]=new Vector();			pids[0].add(csdr.getId());			pids[1].add(csdr.getSearchCatalog());				itr=true;		}			}		public void sendQuery(CatalogSearchQuery csq,int qid,PeerGroup pg)	{		 		 int i=0;		 for (i=0;i<csq.getCatN();i++)	  		{			 	if(((csq.getSearchCatalog(i))!=null))			 	{			 		ResolverQuery rq = new ResolverQuery(handlerName,						 null, pg.getPeerID().toString(), csq.toString(), qid);			 		resSvc.sendQuery(null,rq);			 	}	  		}			}	public boolean isTableReady()	{		return this.itr;			}		public Vector [] getTable()	{		return pids;	}}

⌨️ 快捷键说明

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