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

📄 net.java

📁 监控大型网络的软件。能够自动发现拓扑结构
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
					continue;				}				n.processText(text, data);			}			tcnt++;		}		com.d("Behandler listRouterLinkText", 2);		tcnt=0;		while ( (tList = (String[])lRouterLinkText.get("t"+tcnt)) != null) {			String text = tList[1];			for (int i=2; i < tList.length; i++) {				String[] data = (String[])lRouterLinkText.get(tList[i]);				if (data == null) {					com.d("ERROR in buildBynett(), linkid "+tList[i]+" in t"+tcnt+" is not found in list, check vPServer", 2);					continue;				}				Link l = (Link)lh.get(tList[i]);				if (l == null) {					com.d("ERROR in buildBynett(), could not find link with id "+tList[i], 2);					continue;				}				String pText = l.processText(text, data);			}			tcnt++;		}	}	private int[] topRowLayout(int topLayoutCnt) {		int CANVAS_X = 500;		int CANVAS_Y = 500;		int SPACE_X = 25;		int SPACE_Y = 0;		int NUM_ROW = CANVAS_X / (Nettel.sizeX + SPACE_X);		int TOP_X = 10;		int TOP_Y = 25;		int x = TOP_X + (topLayoutCnt % NUM_ROW) * (Nettel.sizeX + SPACE_X);		int y = TOP_Y + (topLayoutCnt / NUM_ROW) * (Nettel.sizeY + SPACE_Y);		return new int[] { x, y };	}	public void applyLast(Hashtable lRouterText, Hashtable lRouterLinkText)	{		ApplyLoadThread t = new ApplyLoadThread(lRouterText, lRouterLinkText);		t.start();	}	class ApplyLoadThread extends Thread	{		Hashtable lRouterText, lRouterLinkText;		public ApplyLoadThread(Hashtable h1, Hashtable h2) {			lRouterText = h1;			lRouterLinkText = h2;		}		public void run() {			com.d("Henter last-data", 1);			com.d("----------------", 1);			com.getMainPanel().setWaitCursor();			Hashtable h = com.getInput().getDefaultLast();			if (h == null) return;			Hashtable boksLast = (Hashtable)h.get("listBoxLoad");			com.d("boksLast size: " + boksLast.size(), 2);			// Sett boks-last			Enumeration e = boksLast.elements();			while (e.hasMoreElements()) {				String[] s = (String[])e.nextElement();				if (!nh.containsKey(s[0])) continue;				Nettel n = (Nettel)nh.get(s[0]);				try {					n.setNettelLast( Double.valueOf(s[1]).doubleValue() );				} catch (NumberFormatException exp) {				}			}			Hashtable linkOctetLast = (Hashtable)h.get("listLinkLoad");			com.d("linkOctetLast size: " + linkOctetLast.size(), 2);			// Sett link-last			e = linkOctetLast.elements();			while (e.hasMoreElements()) {				String[] s = (String[])e.nextElement();				if (!lh.containsKey(s[0])) continue;				Link l = (Link)lh.get(s[0]);				com.d("  Satt last: " + Double.valueOf(s[1]).doubleValue() , 5);				l.setLast( Double.valueOf(s[1]).doubleValue() );				l.recalc();				if (s.length == 3) {					// Det er gitt last begge veier her					if (lh.containsKey("-"+s[0]) ) {						// Vi forventet også last begge veier, så det er riktig						l = (Link)lh.get("-"+s[0]);						l.setLast( Double.valueOf(s[2]).doubleValue() );						l.recalc();					} else {						// Vi forventet ikke last andre veien, men finn likevel linken						l = l.getLinkOtherWay();						if (l != null) {							l.setLast( Double.valueOf(s[2]).doubleValue() );							l.recalc();						} else {							com.d("  Last funnet andre veien, men fant ikke linken tilbake!!", 4);						}					}				}			}			applyText(lRouterText, lRouterLinkText);			repaint();			com.getMainPanel().setDefaultCursor();		}	}	public void applyLast2()	{		com.d("Henter last-data", 1);		com.d("----------------", 1);		com.getMainPanel().setWaitCursor();		Hashtable h = com.getInput().getDefaultLast();		Hashtable gwportOctetLast = (Hashtable)h.get("listGwportOctetLast");		Hashtable swportOctetLast = (Hashtable)h.get("listSwportOctetLast");		Hashtable boksCPULast = (Hashtable)h.get("listBoksCPULast");		Hashtable boksBakplanLast = (Hashtable)h.get("listBoksBakplanLast");		if (gwportOctetLast == null) gwportOctetLast = new Hashtable();		if (swportOctetLast == null) swportOctetLast = new Hashtable();		if (boksCPULast == null) boksCPULast = new Hashtable();		if (boksBakplanLast == null) boksBakplanLast = new Hashtable();		com.d("gwportOctetLast size: " + gwportOctetLast.size(), 2);		com.d("swportOctetLast size: " + swportOctetLast.size(), 2);		com.d("boksCPULast size: " + boksCPULast.size(), 2);		com.d("boksBakplanLast size: " + boksBakplanLast.size(), 2);		// Sett boks-last		Hashtable[] boksLast = { boksCPULast, boksBakplanLast };		for (int i=0; i < boksLast.length; i++) {			Enumeration e = boksLast[i].elements();			while (e.hasMoreElements()) {				String[] s = (String[])e.nextElement();				if (!nh.containsKey(s[0])) continue;				Nettel n = (Nettel)nh.get(s[0]);				n.setNettelLast( Double.valueOf(s[1]).doubleValue() );			}		}		// Sett link-last		Hashtable[] linkLast = { gwportOctetLast, swportOctetLast };		for (int i=0; i < linkLast.length; i++) {			Enumeration e = linkLast[i].elements();			while (e.hasMoreElements()) {				String[] s = (String[])e.nextElement();				if (!lh.containsKey(s[0])) continue;				Link l = (Link)lh.get(s[0]);				//com.d("  Satt last: " + Double.valueOf(s[1]).doubleValue() , 5);				l.setLast( Double.valueOf(s[1]).doubleValue() );				l.recalc();				if (s.length == 3) {					// Det er gitt last begge veier her					if (lh.containsKey("-"+s[0]) ) {						// Vi forventet også last begge veier, så det er riktig						l = (Link)lh.get("-"+s[0]);						l.setLast( Double.valueOf(s[2]).doubleValue() );						l.recalc();					} else {						// Vi forventet ikke last andre veien, men finn likevel linken						l = l.getLinkOtherWay();						if (l != null) {							l.setLast( Double.valueOf(s[2]).doubleValue() );							l.recalc();						} else {							com.d("  Last funnet andre veien, men fant ikke linken tilbake!!", 4);						}					}				}			}		}		com.getMainPanel().setDefaultCursor();	}	public void getNettelLinks(Nettel n)	{		com.d("Viser sentrisk rundt: " + n.getName() + " Boksid: " + n.getBoksid() + " Type: " + n.getKat() + " Vlan: " + n.getVlan(), 2);		// Klargjør for å bygge opp "verden" på nytt		nh.clear();		lh.clear();		n.transform();		bynettView = false;		// struktur-data		String[] param;		{			Vector v = new Vector();			if (!setConfig) v.addElement("listConfig");			if (!com.getLeft().getNetFinalized()) v.addElement("listRouterGroups");			String[] def = {				"listBoks"			};			param = new String[v.size()+def.length];			for (int i=0; i < v.size(); i++) param[i] = (String)v.elementAt(i);			for (int i=0; i < def.length; i++) param[v.size()+i] = def[i];		}		String kat = (n.getKat().length() > 0)  ? "&kat="+n.getKat() : "";		Hashtable h = com.getInput().fetch(param, "boksid="+n.getBoksid()+kat, Input.vPServerURL, String.valueOf(n.getBoksid()) );		if (!setConfig) {			Hashtable lConfig = (Hashtable)h.get("listConfig");			setConfig(lConfig);		}		if (!com.getLeft().getNetFinalized()) {			// Legg til gruppenavnet til GUI-menyen			Enumeration e = ((Hashtable)h.get("listRouterGroups")).elements();			while (e.hasMoreElements())			{				String[] s = (String[])e.nextElement();				if (s.length <= 4 && !s[0].equals("0")) continue; // Det er ingen bokser i denne gruppen				// Legg til gruppenavnet til GUI-menyen				com.getLeft().addNettNavn(s[1]);			}			com.getLeft().addNettNavn(null); // Listen blir sortert og lukket		}		Hashtable lNettel = (Hashtable)h.get("listBoks");		Hashtable lNettelLinks = (Hashtable)h.get("listBoksLinks");		Hashtable lNettelLinkInfo = (Hashtable)h.get("listBoksLinkInfo");		Hashtable lLinkVlans = (Hashtable)h.get("listLinkVlans");		Hashtable lVlanNames = (Hashtable)h.get("listVlanNames");		Hashtable vlanSet = new Hashtable();		if (lNettel == null) lNettel = new Hashtable();		if (lNettelLinks == null) lNettelLinks = new Hashtable();		if (lNettelLinkInfo == null) lNettelLinkInfo = new Hashtable();		if (lLinkVlans == null) lLinkVlans = new Hashtable();		if (lVlanNames == null) lVlanNames = new Hashtable();		// Fix senter boks		{			String[] boksInfo = (String[])lNettel.get(n.getBoksidS());			if (boksInfo != null) {				// Lag enhet				com.d("Oppdaterer senter-nettel: " + n.getName(), 3);				nh.put(boksInfo[0], n);				n.setName(boksInfo[1]);				n.setKat(boksInfo[2]);			} else {				com.d("Error, kan ikke oppdaterer senter-nettel, boksid " + n.getBoksidS() + " finnes ikke i svar fra server.", 3);			}		}		// Sjekk om vi skal vise et bestemt vlan eller alle (kun på gw-nivå)		visVlan = n.getVlan();		boolean selectVlan = !n.getKat().equalsIgnoreCase("gw");		if (selectVlan && visVlan == 0) {			// Vlan ikke spesifisert, da tar vi bare det første over 1 hvis det eksisterer, ellers 1			Enumeration e = lVlanNames.elements();			while (e.hasMoreElements()) {				String[] s = (String[])e.nextElement();				int v = Integer.parseInt(s[0]);				com.d("  found vlan: " + v, 1);				if (v != 1 && (v < visVlan || visVlan == 0)) visVlan = v;			}			if (visVlan == 0) {				//com.d("ERROR! Can't happen, selectVlan && visVlan == 0, n.getName() = " + n.getName() + ", n.getKat() = " + n.getKat(), 2);				//return;				com.d("Notice: only vlan 1 found, so using that.", 2);				visVlan = 1;			} else {				com.d("visVlan was 0, using lowest found: " + visVlan, 2);			}			n.setVlan(visVlan);		}		n.setDrawVlan(false);		com.d("SelectVlan: " + selectVlan + " Vlan: " + visVlan, 3);		// sett overskrift		if (selectVlan) {			String[] vlanName = (String[])lVlanNames.get(String.valueOf(visVlan));			if (vlanName != null) {				setOverskrift(preHeader + n.getName() + "  Vlan " + visVlan + " ("+vlanName[1]+")");			} else {				com.d("Error, vlanName not found for vlan: " + visVlan, 2);				setOverskrift(preHeader + n.getName() + "  Vlan " + visVlan + " (unknown)");			}			vlanVandring = true;		} else {			setOverskrift(preHeader + n.getName() );			vlanVandring = false;		}		// Gjør klar for å legge til enheter		lnTop.reset();		lnBottom.reset();		// Det er kun en link til hver enhet, vi går derfor over linkene og legger til enhetene fortløpende		Enumeration e = lNettelLinks.elements();		while (e.hasMoreElements())		{			String[] s = (String[])e.nextElement();			if (s[0].equals("cn")) continue;			if (s.length != 3) {				com.d("Error, s[] has wrong length: " + s.length + ", s[0] = " + s[0],3);				continue;			}			String linkIdUt = s[0];			String linkIdInn = s[1];			String boksidTo = s[2];			// Ser kun på vlan på utgående link			String[] vlanA = (String[])lLinkVlans.get(linkIdUt);			if (vlanA == null) {				com.d("Error, vlan not found for linkIdUt: " + linkIdUt,4);				continue;			}			StringTokenizer st = new StringTokenizer(vlanA[1], ","); // Som default velger vi bare det første vlanet			String vlan = st.nextToken();			String retning = st.nextToken();			int curVlan = (vlan.equals("null")) ? -1 : Integer.parseInt(vlan);			Vector curVlanList = new Vector();			if (selectVlan) {				// Sjekk om enheten virkelig er på dette vlanet				boolean ok = false;				for (int j=1; j<vlanA.length; j++) {					st = new StringTokenizer(vlanA[j], ",");					vlan = st.nextToken();					vlanSet.put(vlan, vlan);					curVlanList.addElement(vlan);					if (visVlan == Integer.parseInt(vlan)) {						ok=true;						retning = st.nextToken();					}				}				if (!ok) continue;				curVlan = visVlan;			}			com.d("  Behandler link til enhet: " + boksidTo,6);			// Hent info om enhet			String[] boksInfo = (String[])lNettel.get(boksidTo);			if (boksInfo == null) continue;			// Lag enhet			com.d("   Legger til Nettel, id: " + boksInfo[0] + ", " + boksInfo[1] + ", type: " + boksInfo[2] + " Retning: " + retning + " Vlan: " + curVlan, 5);			Nettel linkTo = new Nettel(com, Integer.parseInt(boksInfo[0]), boksInfo[1], boksInfo[2], "1", curVlan);			if (!selectVlan) linkTo.setDrawVlan(true); // Skal tegne vlan-bokser på linkene når det er gw i sentrum			if (boksInfo.length >= 4 && !boksInfo[3].equals("0")) {				st = new StringTokenizer(boksInfo[3], ",");				if (st.countTokens() == 2) {					linkTo.setIsClickable(true);					linkTo.setClickId(Integer.parseInt(st.nextToken()) );					linkTo.setClickKat(st.nextToken() );				}			}			// Legg til enheten i nh og i scrollbaren			nh.put(boksInfo[0], linkTo);			LayoutNettel layoutNettel = (retning.equals("o")) ? lnTop : lnBottom;			layoutNettel.addNettel(linkTo);			String[] linkInfoUt = (String[])lNettelLinkInfo.get(linkIdUt);			String[] linkInfoInn = (String[])lNettelLinkInfo.get(linkIdInn);			if (linkInfoUt == null || linkInfoInn == null) continue;			// FIXME: Skal ikke være nødvendig			if (linkInfoUt[1].equals("null")) linkInfoUt[1] = (!linkInfoInn[1].equals("null")) ? linkInfoInn[1] : "-1";			if (linkInfoInn[1].equals("null")) linkInfoInn[1] = linkInfoUt[1];			// Vi får oppgitt interface navn per link			String ifNameUt = (linkInfoUt.length >= 3) ? linkInfoUt[2] : "";			String ifNameInn = (linkInfoInn.length >= 3) ? linkInfoInn[2] : "";			int last = -1;			com.d("     Legger til link, utid: " + linkIdUt + ", innid: " + linkIdInn, 8);			// link ut fra sentrum			Link linkUt = n.addLink( linkTo, Integer.parseInt(linkIdUt), Double.valueOf(linkInfoUt[1]).doubleValue(), last, ifNameInn );			// link inn til sentrum			Link linkInn = linkTo.addLink( n, Integer.parseInt(linkIdInn), Double.valueOf(linkInfoInn[1]).doubleValue(), last, ifNameInn );			// Hvis linken er blokkert, marker dette			if (retning.equals("b")) {				linkUt.setIsBlocked(true);				linkUt.setDrawBlocked(true);				linkInn.setIsBlocked(true);			}			// Legg til vlan, kun på linken ut			if (curVlanList.size() > 1) {				com.d("     curVlanList.size() =  " + curVlanList.size(), 8);				Com.quickSort(curVlanList);				for (int i=0; i < curVlanList.size(); i++) {					String vl = (String)curVlanList.elementAt(i);					String[] vlanName = (String[])lVlanNames.get(vl);					if (vlanName == null) continue;					com.d("       Add vlan: "+vl, 9);					//linkUt.addVlan(new Integer(vl));					linkUt.addVlan(vl + " ("+vlanName[1]+")");				}			}			// Legg linkene til linkhash			lh.put(linkIdUt, linkUt);			String dash = (linkIdInn.equals(linkIdUt)) ? "-" : "";			lh.put(dash+linkIdInn, linkInn);			com.d("     Lagt til link OK", 8);		} // while

⌨️ 快捷键说明

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