现想做一个简单的小程序能实现telnet功能,  具体:  用IdTelnet控件,如何设好主机名,pass,  并能发出命令然后收集反来的信息到memo中.

解决方案 »

  1.   

    就是访问23端口而已,用socket也可以。
    playicq上有一个中文telnet的程序,你可以下下来看看
      

  2.   

    那个程序看过了,不懂, 兄第给个实例啊,如何发送command, 如何收反来的信息
      

  3.   

    Indy控件都有demo的。
    我以前写的时候,也是看demo改的。
      

  4.   

    那个demo也是是显示telnet上了,但在上面打命令就不行了.如何让程序自动打个命令地去呢?
      

  5.   

    呵呵..D:\Delphi 7.0\Borland\Delphi7\Demos\Indy里面有哦!
      

  6.   

    用WINSOCK控件就可以搞定,给分!!!!!!!!!!!!!!
      

  7.   

    使用:Indy组件:
    TelnetClient
    unit mainform;interfaceuses
    {$IFDEF Linux}
       QGraphics,  QControls,  QForms,  QDialogs,  QComCtrls,  QStdCtrls,
    {$ELSE}
       Graphics,  Controls,  Forms,  Dialogs,  ComCtrls,  StdCtrls,
    {$ENDIF}
      windows, messages, spin,  SysUtils,  Classes, IdBaseComponent, IdComponent,
        IdTCPConnection, IdTCPClient, IdTelnet;type
      TfrmTelnetDemo = class(TForm)
        Memo1: TRichEdit;
        edtServer: TEdit;
        lblServer: TLabel;
        spnedtPort: TSpinEdit;
        lblPort: TLabel;
        btnConnect: TButton;
        btnDisconnect: TButton;
        sbrStatus: TStatusBar;
        IdTelnetDemo: TIdTelnet;
        Button1: TButton;
        procedure btnConnectClick(Sender: TObject);
        procedure btnDisconnectClick(Sender: TObject);
        procedure Memo1KeyPress(Sender: TObject; var Key: Char);
        procedure IdTelnetDemoDataAvailable(Buffer: string);
        procedure IdTelnetDemoConnected(Sender: TObject);
        procedure IdTelnetDemoConnect;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      frmTelnetDemo: TfrmTelnetDemo;implementation{$IFDEF MSWINDOWS}{$R *.dfm}{$ELSE}{$R *.xfm}{$ENDIF}procedure TfrmTelnetDemo.btnConnectClick(Sender: TObject);
    begin
      IDTelnetDemo.Host := edtServer.Text;
      IDTelnetDemo.port := spnedtPort.Value;
      IdTelnetDemo.Connect;
    end;procedure TfrmTelnetDemo.btnDisconnectClick(Sender: TObject);
    begin
      IdTelnetDemo.Disconnect;
    end;procedure TfrmTelnetDemo.Memo1KeyPress(Sender: TObject;
      var Key: Char);
    begin
      {we simply send the key stroke to the server.  It may echo it back to us}
      if IdTelnetDemo.Connected then
        IdTelnetDemo.SendCh(Key);
        
      Key := #0;
    end;procedure TfrmTelnetDemo.IdTelnetDemoDataAvailable(Buffer: string);
    {This routine comes directly from the ICS TNDEMO code. Thanks to Francois Piette
     It updates the memo control when we get data}
    const
      CR = #13;
      LF = #10;
    var
      Start, Stop: Integer;
    begin
      if Memo1.Lines.Count = 0 then
        Memo1.Lines.Add('');  Start := 1;
      Stop := Pos(CR, Buffer);
      if Stop = 0 then
        Stop := Length(Buffer) + 1;
      while Start <= Length(Buffer) do
      begin
        Memo1.Lines.Strings[Memo1.Lines.Count - 1] :=
          Memo1.Lines.Strings[Memo1.Lines.Count - 1] +
          Copy(Buffer, Start, Stop - Start);
        if Buffer[Stop] = CR then
        begin
          Memo1.Lines.Add('');
    {$IFNDEF Linux}
          SendMessage(Memo1.Handle, WM_KEYDOWN, VK_UP, 1);
    {$ENDIF}
        end;
        Start := Stop + 1;
        if Start > Length(Buffer) then
          Break;
        if Buffer[Start] = LF then
          Start := Start + 1;
        Stop := Start;
        while (Buffer[Stop] <> CR) and (Stop <= Length(Buffer)) do
          Stop := Stop + 1;
      end;
    end;procedure TfrmTelnetDemo.IdTelnetDemoConnected(Sender: TObject);
    begin
      sbrStatus.SimpleText := 'Connected';
    end;procedure TfrmTelnetDemo.IdTelnetDemoConnect;
    begin
      sbrStatus.SimpleText := 'Connect';
    end;procedure TfrmTelnetDemo.Button1Click(Sender: TObject);
    begin
    idtelnetdemo.Write('dir c:\'+#13);end;end.如果还不清楚
    看看这个
    http://search.csdn.net/Expert/topic/1431/1431231.xml?temp=.6505243
      

  8.   

    留个EMAIL,我给你发个小程序吧,根据脚本自动执行的。