?? unit1.~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 + -