📄 main.htm
字号:
<HTML><!-- (c) jSh:Services --><HEAD><TITLE>UDT Documentation</TITLE><LINK REL=StyleSheet TYPE="text/css" HREF="doc/treeview.css"><META NAME="robots" CONTENT="noindex,follow"><base target="main"></HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#CC0000" VLINK="#990066" ALINK="#CC0000" ONLOAD="window.onerror=myError; loaded=true;"><NULL SPACE TAG (NS2 BUGFIX)><SCRIPT LANGUAGE="JavaScript"> /*This page requires a JavaScript- enabled browser. Yours isn't.(Für diese Seite muss JavaScript einsetzbar sein!) */ <!-- hidefunction myError(msg, url, line) { return true; } // error 'handler'window.onerror = myError; loaded = false; xImgs = new Array(10);/* This is TreeView, Copyright (c) Simon Harston <jSh@jSh.de> * It may be used as freeware, but please give credit. Please * also tell me an URL where I can look at what you made with * it. Get the documentation at <http://www.jsh.de/treeview/> *//* ### LOCAL DEFINITIONS ### */UniqueID = "UDT";DocRoot = "doc/";ImgRoot = "hlp/";FrameSet = "index.htm";ImgWidth = 14;ImgHeight = 18;EntryHeight = ImgHeight;InitialKey = "";CurrPageBG = "#000099";CurrPageFG = "#FFFFFF";LinkCurrPage = true;TreeRootHint = "";NormalPageHint = "";LinkedPageHint = "";OpenBookHint = "close"; // "schließen";ClosedBookHint = "open"; // "öffnen";OpenBookStatus = "Close sub-list"; // "Ebene ausblenden";ClosedBookStatus = "Open sub-list"; // "Ebene einblenden";window.defaultStatus = "UDT Documentation";navExplain = "\nThis page normally belongs inside a navigation" + " frame.\n\nIs it OK to reload the page as designed ?";// navExplain = "Wenn ihr Browser Frames und JavaScript unterst"// +unescape("%FC")+"tzt,\nempfehlen wir die Nutzung der deutlich "// +"komfortableren\nFrameset-Version dieser Homepage."// waitText = "Baumstruktur wird aktualisiert. Bitte warten ...";FontFace = "'Garamond Condensed','Times New Roman',Times,serif";compactTree = false;viewMatchCnt = 0;singleBranch = false;checkFrames = true;/* ### ENTER YOUR TREEVIEW INDEX HERE ### * Note for TEXT: Use \" for quotes, NOT " ! */initTree("<B>UDT Documentation<\/B>","*", "intro.htm"); sub_Page("Introduction|Introduction to UDT", "a", "intro.htm"); sub_Page("Installation|Make and Install UDT", "b", "make.htm"); sub_Book("Tutorial", "c", "tutorial.htm"); sub_Page("Transition from UDT3|Transition from UDT3", "ca","t-udt3.htm"); sub_Page("Introduction|Introduction to UDT programming", "cb","t-intro.htm"); sub_Page("Hello World|A simple UDT example", "cc","t-hello.htm"); sub_Page("Configuration|Read and set UDT options", "cd","t-config.htm"); sub_Page("Transfer Data|Sending / Receiving data", "ce","t-data.htm"); sub_Page("Messaging with Partial Reliability|Messaging with partial reliability", "cf","t-msg.htm"); sub_Page("Transfer File|Sending / Receiving files", "cg","t-file.htm"); sub_Page("Handling Firewalls|Handling Firewalls", "ch","t-firewall.htm"); sub_Page("Error Handling|Handle error and exceptions", "ci","t-error.htm"); lastPage("User-defined Congestion Control|Add user-defined congestion control clgorithm", "cj","t-cc.htm"); end_Book(); sub_Book("Reference", "d", "reference.htm"); sub_Book("UDT Functions", "da", "function.htm"); sub_Page("accept|accept", "daa","accept.htm"); sub_Page("bind|bind", "dab","bind.htm"); sub_Page("close|close", "dac","close.htm"); sub_Page("connect|connect", "dad","connect.htm"); sub_Page("getlasterror|getlasterror", "dae","error.htm"); sub_Page("getpeername|getpeername", "daf","peername.htm"); sub_Page("getsockname|getsockname", "dag","sockname.htm"); sub_Page("getsockopt|getsockopt", "dah","opt.htm"); sub_Page("listen|listen", "dai","listen.htm"); sub_Page("perfmon|perfmon", "daj","trace.htm"); sub_Page("recv|recv", "dak","recv.htm"); sub_Page("recvfile|recvfile", "dal","recvfile.htm"); sub_Page("recvmsg|recvmsg", "dam","recvmsg.htm"); sub_Page("select|select", "dan","select.htm"); sub_Page("send|send", "dao","send.htm"); sub_Page("sendfile|sendfile", "dap","sendfile.htm"); sub_Page("sendmsg|sendmsg", "daq","sendmsg.htm"); sub_Page("setsockopt|setsockopt", "dar","opt.htm"); lastPage("socket|socket", "das","socket.htm"); end_Book(); sub_Page("UDT Structures", "db","structure.htm"); sub_Page("Congestion Control Class", "dc","ccc.htm"); lastPage("Error Code List", "dd","ecode.htm"); end_Book(); sub_Page("F.A.Q.|Frequently Asked Questions", "e", "faq.htm"); lastPage("COPYRIGHT", "f", "copy.htm");idx();end_Tree();/* ############################################################ * * Note: You won't need to change anything below here, I think. */function TVversion() { /* print version info */ return "TreeView v.3.3 BETA (2001-04-01) [http://www.jSh.de/treeview/]"; }/* read params, split key and viewKey etc. */function initTreeView () { if (self.TVinitd) return; if (self.checkFrames && (""+window.innerWidth != "0")) { // not printing tmpTopName = top.name; cutPos = UniqueID.length; if (tmpTopName.length > cutPos) tmpTopName = tmpTopName.substring(0, cutPos); if ((tmpTopName == UniqueID && top.frames.length == 0) || (tmpTopName != UniqueID)) // check we're feeling at home ... if (confirm(navExplain)) { if (window.stop) window.stop(); if (document.images) top.location.replace(FrameSet); else top.location.href = FrameSet; }} isOpera = (myIndexOf(navigator.userAgent, "Opera") > -1); if ((navigator.appName == "Netscape") && (navigator.appVersion.charAt(0) == "2")) // Doesn't know CurrPageFG = "#339933\"><B><CurrPage=\"YES"; // TD with BGCOLOR isDHTML = (document.all || document.layers); if ((navigator.appName == "Netscape") // Mac display refresh && (navigator.appVersion.charAt(0) == "4") // bug workaround && (myIndexOf(navigator.userAgent, "Macintosh") > -1)) isDHTML = false; if (document.layers && document.preamble) TVtop = document.preamble.clip.bottom; else if (document.all && document.all.preamble) TVtop = document.all.preamble.offsetHeight; else TVtop = 0; if (!self.waitText) waitText = "Rendering tree, please wait..."; currPosY = TVtop; TVentries = new Array(); TVkeys = new Array(); TVcount = 0; showKey = printBuffer = ""; splitPrm(); TVinitd = true; }/* split input to prm and viewKey */function splitPrm() { input = ""; if (top.key) input = ""+ top.key; if ((input == "") || (myIndexOf(input, "<object") > -1)) input = InitialKey; pos = myIndexOf(input, "+"); if (pos < 0) viewKey = ""; else { viewKey = input.substring(pos+1); input = input.substring(0, pos); } if (input == "") input = ".+."; prm = input; dontVKey = false; }/* set visibility if isDHTML */function DHTMLTreeView(currKey) { // must return true ... if (!isDHTML) return false; // ... only if display handled.// TVentries[count](status{0=final,1=redraw}, text, key, link, TreePfx,// prefix, code, isCurrVisible, currTop); TVkeys[key](showSubs); TVkeys[currKey] = newVis = (!TVkeys[currKey]); if (self.singleBranch) for (var i = 1; i <= TVcount; i++) if (TVkeys[TVentries[i][2]] && (myIndexOf(currKey, TVentries[i][2]) != 0)) TVkeys[TVentries[i][2]] = TVentries[i][0] = false; currPosY = TVtop; TVelemTop = TVelemBtm = 0; for (var j = 1; j < viewKey.length; j++) if (!dontVKey) { var viewSub = viewKey.substring(0, j); for (var i = 1; i <= TVcount; i++) if (!TVkeys[viewSub]) TVentries[i][0] &= (TVentries[i][2] != viewSub); TVkeys[viewSub] = true; } if (TVkeys[currKey] != newVis) dontVKey = true; TVkeys[currKey] = newVis; for (var i = 1; i <= TVcount; i++) { var tmpKey = TVentries[i][2]; var isVisible = true; for (var j = 1; j < tmpKey.length; j++) isVisible &= TVkeys[tmpKey.substring(0, j)]; if (self.viewMatchCnt && tmpKey != "*") isVisible &= (tmpKey.substring(0, viewMatchCnt) == viewKey.substring(0, viewMatchCnt)); if (isVisible) { TVentries[i][0] &= ((tmpKey != currKey) && (tmpKey != viewKey)); if (TVentries[i][8] != currPosY) { TVentries[i][8] = currPosY; if (document.layers) document.layers["TV"+i].top = currPosY; else document.all["TV"+i].style.top = currPosY; } if (tmpKey == showKey) TVelemTop = TVelemBtm = currPosY; if ((tmpKey.substring(0, showKey.length) == showKey) && (currPosY > TVelemBtm)) TVelemBtm = currPosY; currPosY += EntryHeight; if (!TVentries[i][0]) { treePfx = TVentries[i][4]; prm = (TVkeys[tmpKey] ? tmpKey : tmpKey.substring(0, tmpKey.length-1)); var retVal = wrtIdx(TVentries[i][1], tmpKey, TVentries[i][3], TVentries[i][5], TVentries[i][6]); if (document.all) document.all["TV"+i].innerHTML = retVal; else with (document.layers["TV"+i].document) { clear(); write(retVal); close(); } TVentries[i][0] = (tmpKey != viewKey); }} if (TVentries[i][7] != isVisible) { TVentries[i][7] = isVisible; if (document.layers) document.layers["TV"+i].visibility = (isVisible ? "show" : "hide"); else document.all["TV"+i].style.display = (isVisible ? "block" : "none"); }} // scroll new entry into view if (TVelemTop > 0) { TVelemBtm += EntryHeight; if (document.layers) { var ScreenTop = window.pageYOffset; var ScreenBtm = ScreenTop + window.innerHeight; } else { var ScreenTop = document.body.scrollTop; var ScreenBtm = ScreenTop + document.body.clientHeight; } if ((TVelemBtm > ScreenBtm) || (TVelemTop < ScreenTop)) { var scrollTo = ScreenTop + TVelemBtm - ScreenBtm; if (TVelemTop < scrollTo) scrollTo = TVelemTop; window.scrollTo(0, scrollTo); } } return true; }/* expands an image */function img (image, hint) { return "<IMG SRC=\"" + ImgRoot +"ix_"+ image +".gif\" ALT=\""+ hint +"\" BORDER=\"0\"" +" WIDTH=\""+ ImgWidth +"\" HEIGHT=\""+ ImgHeight +"\">"; }/* expands a tree-code */function tree (code) { var ret = ""; if (myIndexOf(code, "null") > -1) return ""; for (var i = 0; i < code.length; i++) { var c = code.charAt(i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -