📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ServerSocket1: TServerSocket;
Memo1: TMemo;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure ClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
private
{ Private declarations }
IPRecieved : string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Active := True;
Form1.Caption := 'On';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Active := False;
Form1.Caption := 'Off';
end;
procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
Buf : string;
MsgLen, {The comma is just a way of declaring two integers }
LenReceived: integer; {EG: int1,int2,int3: integer; }
begin
{1} MsgLen := Socket.ReceiveLength;
{2} SetLength( Buf, MsgLen );
{3} LenReceived := Socket.ReceiveBuf( Buf[1], MsgLen );
{4} Buf := Copy( Buf, 1, LenReceived );
if Pos('<IP>', Buf) = 1 then
begin
Delete(Buf, 1, 4); {Delete the tag: <IP>}
IPRecieved := Buf;
memo1.Lines.add (IPRecieved);
ServerSocket1.Socket.connections[0].SendText('<IP>'+IPRecieved);end;
end;
procedure TForm1.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Memo1.Lines.Add('** Error: ' + IntToStr(ErrorCode));
ErrorCode := 0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -