📄 mainform.pas
字号:
unit MainForm;
interface
uses
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,
QStdCtrls, Sockets, SBClient, SBX509;
type
TForm1 = class(TForm)
TcpClient1: TTcpClient;
ElSecureClient1: TElSecureClient;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Memo1: TMemo;
procedure ElSecureClient1Receive(Sender: TObject; Buffer: Pointer;
MaxSize: Integer; out Written: Integer);
procedure ElSecureClient1Send(Sender: TObject; Buffer: Pointer;
Size: Integer);
procedure ElSecureClient1CertificateValidate(Sender: TObject;
Certificate: TElX509Certificate; var Validate: Boolean);
procedure Button1Click(Sender: TObject);
procedure TcpClient1Connect(Sender: TObject);
procedure ElSecureClient1CloseConnection(Sender: TObject;
CloseReason: TSBCloseReason);
procedure ElSecureClient1Data(Sender: TObject; Buffer: Pointer;
Size: Integer);
procedure ElSecureClient1OpenConnection(Sender: TObject);
procedure TcpClient1Disconnect(Sender: TObject);
procedure TcpClient1Error(Sender: TObject; SocketError: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
FDisconnected : boolean;
implementation
{$R *.xfm}
procedure TForm1.ElSecureClient1Receive(Sender: TObject; Buffer: Pointer;
MaxSize: Integer; out Written: Integer);
begin
Written := TcpClient1.ReceiveBuf(Buffer^, MaxSize);
if Written < 0 then
Written := 0;
end;
procedure TForm1.ElSecureClient1Send(Sender: TObject; Buffer: Pointer;
Size: Integer);
begin
TcpClient1.SendBuf(Buffer^, Size);
end;
procedure TForm1.ElSecureClient1CertificateValidate(Sender: TObject;
Certificate: TElX509Certificate; var Validate: Boolean);
begin
Validate := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FDisconnected := false;
TcpClient1.RemoteHost := Edit1.Text;
TcpClient1.RemotePort := Edit2.Text;
TcpClient1.Open;
end;
procedure TForm1.TcpClient1Connect(Sender: TObject);
begin
ElSecureClient1.Open;
while (not FDisconnected) and (TcpClient1.Connected) do
begin
ElSecureClient1.DataAvailable;
Application.ProcessMessages;
end;
end;
procedure TForm1.ElSecureClient1CloseConnection(Sender: TObject;
CloseReason: TSBCloseReason);
begin
FDisconnected := true;
end;
procedure TForm1.ElSecureClient1Data(Sender: TObject; Buffer: Pointer;
Size: Integer);
var
S : string;
begin
SetLength(S, Size);
Move(Buffer^, S[1], Size);
Memo1.Lines.Text := Memo1.Lines.Text + S;
end;
procedure TForm1.ElSecureClient1OpenConnection(Sender: TObject);
begin
ElSecureClient1.SendText('GET / HTTP/1.0'#13#10#13#10);
end;
procedure TForm1.TcpClient1Disconnect(Sender: TObject);
begin
ElSecureClient1.Close;
end;
procedure TForm1.TcpClient1Error(Sender: TObject; SocketError: Integer);
begin
ElSecureClient1.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -