📄 telnet_8h-source.html
字号:
00366 BOOL state = TRUE <span class="comment">// New state for for option.</span>00367 ) { <a class="code" href="classPTelnetSocket.html#n0">option</a>[code].<a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m0">weCan</a> = state; }00368 <a name="l00372"></a><a class="code" href="classPTelnetSocket.html#a14">00372</a> <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#a14">SetTheirOption</a>(00373 BYTE code, <span class="comment">// Option to check.</span>00374 BOOL state = TRUE <span class="comment">// New state for for option.</span>00375 ) { <a class="code" href="classPTelnetSocket.html#n0">option</a>[code].<a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m2">theyShould</a> = state; }00376 <a name="l00382"></a><a class="code" href="classPTelnetSocket.html#a15">00382</a> BOOL <a class="code" href="classPTelnetSocket.html#a15">IsOurOption</a>(00383 BYTE code <span class="comment">// Option to check.</span>00384 )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPTelnetSocket.html#n0">option</a>[code].<a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m1">ourState</a> == OptionInfo::IsYes; }00385 <a name="l00391"></a><a class="code" href="classPTelnetSocket.html#a16">00391</a> BOOL <a class="code" href="classPTelnetSocket.html#a16">IsTheirOption</a>(00392 BYTE code <span class="comment">// Option to check.</span>00393 )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPTelnetSocket.html#n0">option</a>[code].<a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m3">theirState</a> == OptionInfo::IsYes; }00394 00395 <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#a17">SetTerminalType</a>(00396 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & newType <span class="comment">// New terminal type description string.</span>00397 );00398 <span class="comment">// Set the terminal type description string for TELNET protocol.</span>00399 <a name="l00400"></a><a class="code" href="classPTelnetSocket.html#a18">00400</a> <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & <a class="code" href="classPTelnetSocket.html#a18">GetTerminalType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classPTelnetSocket.html#n1">terminalType</a>; }00401 <span class="comment">// Get the terminal type description string for TELNET protocol.</span>00402 00403 <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#a19">SetWindowSize</a>(00404 WORD width, <span class="comment">// New window width.</span>00405 WORD height <span class="comment">// New window height.</span>00406 );00407 <span class="comment">// Set the width and height of the Network Virtual Terminal window.</span>00408 00409 <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#a20">GetWindowSize</a>(00410 WORD & width, <span class="comment">// Old window width.</span>00411 WORD & height <span class="comment">// Old window height.</span>00412 ) <span class="keyword">const</span>;00413 <span class="comment">// Get the width and height of the Network Virtual Terminal window.</span>00414 00415 00416 <span class="keyword">protected</span>:00417 <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#b0">Construct</a>();00418 <span class="comment">// Common construct code for TELNET socket channel.</span>00419 00429 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#b1">OnDo</a>(00430 BYTE <a class="code" href="classPTelnetSocket.html#n0">option</a> <span class="comment">// Option to DO</span>00431 );00432 00439 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#b2">OnDont</a>(00440 BYTE <a class="code" href="classPTelnetSocket.html#n0">option</a> <span class="comment">// Option to DONT</span>00441 );00442 00449 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#b3">OnWill</a>(00450 BYTE <a class="code" href="classPTelnetSocket.html#n0">option</a> <span class="comment">// Option to WILL</span>00451 );00452 00459 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#b4">OnWont</a>(00460 BYTE <a class="code" href="classPTelnetSocket.html#n0">option</a> <span class="comment">// Option to WONT</span>00461 );00462 00466 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPTelnetSocket.html#b5">OnSubOption</a>(00467 BYTE code, <span class="comment">// Option code for sub-option data.</span>00468 <span class="keyword">const</span> BYTE * info, <span class="comment">// Extra information being sent in the sub-option.</span>00469 PINDEX len <span class="comment">// Number of extra bytes.</span>00470 );00471 00472 00482 <span class="keyword">virtual</span> BOOL <a class="code" href="classPTelnetSocket.html#b6">OnCommand</a>(00483 BYTE code <span class="comment">// Code received that could not be precessed.</span>00484 );00485 00486 00487 <span class="comment">// Member variables.</span><a name="l00488"></a><a class="code" href="structPTelnetSocket_1_1OptionInfo.html">00488</a> <span class="keyword">struct </span><a class="code" href="structPTelnetSocket_1_1OptionInfo.html">OptionInfo</a> {00489 <span class="keyword">enum</span> {00490 <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#s6s0">IsNo</a>, <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#s6s1">IsYes</a>, <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#s6s2">WantNo</a>, <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#s6s3">WantNoQueued</a>, <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#s6s4">WantYes</a>, <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#s6s5">WantYesQueued</a>00491 };<a name="l00492"></a><a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m0">00492</a> <span class="keywordtype">unsigned</span> <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m0">weCan</a>:1; <span class="comment">// We can do the option if they want us to do.</span><a name="l00493"></a><a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m1">00493</a> <span class="keywordtype">unsigned</span> <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m1">ourState</a>:3;<a name="l00494"></a><a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m2">00494</a> <span class="keywordtype">unsigned</span> <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m2">theyShould</a>:1; <span class="comment">// They should if they will.</span><a name="l00495"></a><a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m3">00495</a> <span class="keywordtype">unsigned</span> <a class="code" href="structPTelnetSocket_1_1OptionInfo.html#m3">theirState</a>:3;00496 };00497 <a name="l00498"></a><a class="code" href="classPTelnetSocket.html#n0">00498</a> <a class="code" href="structPTelnetSocket_1_1OptionInfo.html">OptionInfo</a> <a class="code" href="classPTelnetSocket.html#n0">option</a>[<a class="code" href="classPTelnetSocket.html#s64s60">MaxOptions</a>];00499 <span class="comment">// Information on protocol options.</span>00500 <a name="l00501"></a><a class="code" href="classPTelnetSocket.html#n1">00501</a> <a class="code" href="classPString.html">PString</a> <a class="code" href="classPTelnetSocket.html#n1">terminalType</a>;00502 <span class="comment">// Type of terminal connected to telnet socket, defaults to "UNKNOWN"</span>00503 <a name="l00504"></a><a class="code" href="classPTelnetSocket.html#n2">00504</a> WORD <a class="code" href="classPTelnetSocket.html#n2">windowWidth</a>, <a class="code" href="classPTelnetSocket.html#n3">windowHeight</a>;00505 <span class="comment">// Size of the "window" used by the NVT.</span>00506 <a name="l00507"></a><a class="code" href="classPTelnetSocket.html#n4">00507</a> BOOL <a class="code" href="classPTelnetSocket.html#n4">debug</a>;00508 <span class="comment">// Debug socket, output messages to PError stream.</span>00509 00510 00511 <span class="keyword">private</span>:00512 <span class="keyword">enum</span> State {00513 StateNormal,00514 StateCarriageReturn,00515 StateIAC,00516 StateDo,00517 StateDont,00518 StateWill,00519 StateWont,00520 StateSubNegotiations,00521 StateEndNegotiations00522 };00523 <span class="comment">// Internal states for the TELNET decoder</span>00524 00525 State state;00526 <span class="comment">// Current state of incoming characters.</span>00527 00528 <a class="code" href="classPBYTEArray.html">PBYTEArray</a> subOption;00529 <span class="comment">// Storage for sub-negotiated options</span>00530 00531 <span class="keywordtype">unsigned</span> synchronising;00532 00533 BOOL StartSend(<span class="keyword">const</span> <span class="keywordtype">char</span> * which, BYTE code);00534 };00535 00536 00537 <span class="preprocessor">#endif</span>00538 <span class="preprocessor"></span>00539 00540 <span class="comment">// End Of File ///////////////////////////////////////////////////////////////</span>00541 </pre></div><hr><address style="align: right;"><small>Generated on Wed Sep 29 22:44:12 2004 for PWLib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -