📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, winsock, StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
SpeedButton1: TSpeedButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ls: tlist;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
wsaData: TWSAData;
begin
WSAStartup($0202, wsaData);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
clisock: tsocket;
srvaddr: TSockAddr;
cliaddr: TSockAddr;
c: array[0..1023] of char;
count: Int64;
z: Integer;
begin
z := strtoint(Edit3.text);
ls := tlist.Create;
count := 0;
while true do
begin
clisock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if clisock = INVALID_SOCKET then
begin
showmessage('error1');
exit;
end;
ZeroMemory(@srvaddr, sizeof(srvaddr));
srvaddr.sin_family := AF_INET;
srvaddr.sin_addr.S_addr := inet_addr(pchar(Edit1.Text));
srvaddr.sin_port := htons(strtointdef(Edit2.Text, 0));
ZeroMemory(@cliaddr, sizeof(cliaddr));
cliaddr.sin_family := AF_INET;
cliaddr.sin_port := 0;
bind(clisock, cliaddr, sizeof(cliaddr));
if connect(clisock, srvaddr, sizeof(srvaddr)) = SOCKET_ERROR then
begin
showmessage('error2');
exit;
end;
strcopy(c, 'test');
if send(clisock, c, strlen(c), 0) <= 0 then
begin
showmessage('error3');
exit;
end;
if recv(clisock, c, 1023, 0) <= 0 then
begin
showmessage('error4');
exit;
end;
ls.Add(pointer(clisock));
if count > z then
begin
closesocket(tsocket(ls[0]));
ls.Delete(0);
end;
inc(count);
Label1.Caption := inttostr(count);
Application.ProcessMessages;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -