?? 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!) */ <!-- hide
function 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 + -