VTClientSession.cpp
上传用户:wsk323
上传日期:2007-01-05
资源大小:403k
文件大小:5k
源码类别:

Telnet服务器

开发平台:

Visual C++

  1. /*---------------------------------------------------------------------------
  2. Copyright:    E. Brady Trexler
  3. Creation:     March 1998
  4. Description:  VTClientSession -- a VCL form using a TnCnx component from
  5.               F. Piette.  Basically, this class reads data coming from
  6.               the TnCnx socket.
  7. Legal issues: Copyright (C) 1998 by E. Brady Trexler
  8.               This software is provided 'as-is', without any express or
  9.               implied warranty.  In no event will the author be held liable
  10.               for any  damages arising from the use of this software.
  11.               Permission is granted to anyone to use this software for any
  12.               purpose, excluding commercial applications, and to alter it
  13.               and redistribute it freely, subject to the following
  14.               restrictions:
  15.               1. The origin of this software must not be misrepresented,
  16.                  you must not claim that you wrote the original software.
  17.                  If you use this software in a product, an acknowledgment
  18.                  in the product documentation would be appreciated but is
  19.                  not required.
  20.               2. Altered source versions must be plainly marked as such, and
  21.                  must not be misrepresented as being the original software.
  22.               3. This notice may not be removed or altered from any source
  23.                  distribution.
  24. Updates:
  25. ---------------------------------------------------------------------------*/
  26. //---------------------------------------------------------------------------
  27. #include <vcl.h>
  28. #pragma hdrstop
  29. #include <stdio.h>
  30. #include <conio.h>
  31. #include "VTClientSession.h"
  32. //---------------------------------------------------------------------------
  33. #pragma package(smart_init)
  34. #pragma link "TnCnx"
  35. #pragma resource "*.dfm"
  36. TVTClient *VTClient;
  37. //---------------------------------------------------------------------------
  38. __fastcall TVTClient::TVTClient(TComponent* Owner)
  39.     : TForm(Owner)
  40. {
  41. }
  42. //---------------------------------------------------------------------------
  43. void __fastcall TVTClient::TnCnxDataAvailable(TTnCnx *Sender, PChar Buffer,
  44.       int Len)
  45. {
  46. // Insert code here
  47.    DWORD dwWritten;
  48.    WriteFile(hSaveStdout, Buffer, Len, &dwWritten, NULL);
  49. }
  50. //---------------------------------------------------------------------------
  51. void __fastcall TVTClient::TnCnxDisplay(TTnCnx *Sender, AnsiString Str)
  52. {
  53. // Insert code here
  54.    DWORD dwWritten;
  55.    Str += "rn";
  56.    char *Buffer = Str.c_str();
  57.    int Len = strlen(Buffer);
  58.    WriteFile(hSaveStdout, Buffer, Len, &dwWritten, NULL);
  59. }
  60. //---------------------------------------------------------------------------
  61. void __fastcall TVTClient::TnCnxEndOfRecord(TObject *Sender)
  62. {
  63. // Insert code here
  64. }
  65. //---------------------------------------------------------------------------
  66. void __fastcall TVTClient::TnCnxLocalEcho(TObject *Sender)
  67. {
  68. // Insert code here
  69. }
  70. //---------------------------------------------------------------------------
  71. void __fastcall TVTClient::TnCnxSendLoc(TObject *Sender)
  72. {
  73. // Insert code here
  74. }
  75. //---------------------------------------------------------------------------
  76. void __fastcall TVTClient::TnCnxSessionClosed(TTnCnx *Sender, WORD Error)
  77. {
  78. // Insert code here
  79.    DWORD dwWritten;
  80.    char Buffer[256];
  81.    sprintf(Buffer, "rn<<<Session ended by remote host>>>rn");
  82.    int Len = strlen(Buffer);
  83.    WriteFile(hSaveStdout, Buffer, Len, &dwWritten, NULL);
  84. }
  85. //---------------------------------------------------------------------------
  86. void __fastcall TVTClient::TnCnxSessionConnected(TTnCnx *Sender, WORD Error)
  87. {
  88. // Insert code here
  89.    DWORD dwWritten;
  90.    char Buffer[256];
  91.    sprintf(Buffer,"rn<<<Session accepted by remote host>>>rn");
  92.    int Len = strlen(Buffer);
  93.    WriteFile(hSaveStdout, Buffer, Len, &dwWritten, NULL);
  94.    TimeOutTimer->Enabled = false;
  95. }
  96. //---------------------------------------------------------------------------
  97. void __fastcall TVTClient::TnCnxTermType(TObject *Sender)
  98. {
  99. // Insert code here
  100. }
  101. //---------------------------------------------------------------------------
  102. // Process each character received to do minimal line editing
  103. //---------------------------------------------------------------------------
  104. void __fastcall TVTClient::ProcessChar(char Ch)
  105. {
  106. // Insert code here
  107. }
  108. //---------------------------------------------------------------------------
  109. // This is the command line interpreter.
  110. //---------------------------------------------------------------------------
  111. void __fastcall TVTClient::CommandInterpreter()
  112. {
  113. // Insert code here
  114. }
  115. //---------------------------------------------------------------------------
  116. void __fastcall TVTClient::TimeOutTimerTimer(TObject *Sender)
  117. {
  118.    if (!TnCnx->IsConnected()){
  119.       Close();
  120.       DWORD dwWritten;
  121.       char Buffer[256];
  122.       sprintf(Buffer,"rnrnServer unavailable...rnrn
  123. ......Connection refused.rn");
  124.       int Len = strlen(Buffer);
  125.       WriteFile(hSaveStdout, Buffer, Len, &dwWritten, NULL);
  126.    }
  127. }
  128. //---------------------------------------------------------------------------