⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 ftp,telnet,ssh,都可以测试
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ScktComp, ComCtrls,Winsock;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    StatusBar1: TStatusBar;
    Memo1: TMemo;
    Edit5: TEdit;
    btnSend: TButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    btnConnect: TButton;
    btnDisconnect: TButton;
    procedure FormCreate(Sender: TObject);
    procedure btnConnectClick(Sender: TObject);
    procedure ClientSocket1Connect(Sender: TObject;Socket: TCustomWinSocket);
    procedure btnDisconnectClick(Sender: TObject);
    procedure ClientSocket1Disconnect(Sender: TObject;Socket: TCustomWinSocket);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure btnSendClick(Sender: TObject);
    procedure ClientSocket1Connecting(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Text:='';
  Edit1.Text:='211.98.224.56';
  Edit2.Text:='9003';
end;

procedure TForm1.btnConnectClick(Sender: TObject);
begin
  //check
  if ClientSocket1.Active then
      exit;
  //valid check
  if Edit1.Text='' then
      exit;
  if Edit2.Text='' then
      exit;
  //set server info
  ClientSocket1.Host:=Edit1.Text;
  ClientSocket1.Port:=StrToInt(Edit2.Text);
  //Connect
  ClientSocket1.Active:=true;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;Socket: TCustomWinSocket);
begin
  StatusBar1.SimpleText:='Connected';
end;

procedure TForm1.btnDisconnectClick(Sender: TObject);
begin
    ClientSocket1.Active:=false;
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
     StatusBar1.SimpleText:='Disconnected';
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var
    buf:pchar;
    count:integer;
    i:integer;
begin
  Count:=Socket.ReceiveLength;
  GetMem(buf,Count+1);
  ZeroMemory(buf,Count+1);
  Socket.ReceiveBuf(buf^,count);
  Memo1.text:=buf^;
  Freemem(buf);
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  case ErrorCode of
  WSAENETDOWN: StatusBar1.SimpleText:='Network is down';
  WSAECONNREFUSED: StatusBar1.SimpleText:='Connection refused';
  WSAENETUNREACH: StatusBar1.SimpleText:='Network is unreachable';
  WSAEHOSTUNREACH: StatusBar1.SimpleText:='No route to host';
  end;
end;

procedure TForm1.btnSendClick(Sender: TObject);
var
  buf:pchar;
  count:integer;
  sBuf:string;
begin
  sBuf:=Edit5.Text+#13#10;
  count:=length(sBuf);
  GetMem(buf,Count+1);
  ZeroMemory(buf,Count+1);
  StrPCopy(buf,sBuf);
  ClientSocket1.Socket.SendBuf(buf^,Count);
  //free memory
  FreeMem(buf);
end;

procedure TForm1.ClientSocket1Connecting(Sender: TObject; Socket: TCustomWinSocket);
begin
  StatusBar1.SimpleText:='Connecting...'
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -