我正在使用Delphi 2007.在我的Delphi应用程序中,我需要通过端口和IP发送字符串,接收方必须给我一个答案。
我已创建此代码,但我不确定我是否真的正确地做事,因为我没有得到答案:
procedure TForm1.Button1Click(Sender: TObject);
var port:integer;
begin
port:=StrToInt(edit4.text);
ClientSocket1.Port:=21000;
ClientSocket1.Host:=Edit3.text;
ClientSocket1.ClientType:=ctNonBlocking;
ClientSocket1.Active:=true;
ClientSocket1.Connect.
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket:CustomWinSocket);
begin
Checkbox1.Checked:=true;
Edit1.Text:=Socket.LocalAddress;
Edit2.Text:=Socket.LocalHost;
Memo2.Lines.Clear;
Edit5.Text:='STX ~ JR | ETX';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if ClientSocket1.Active then
ClientSocket1.Socket.SendText(Edit5.text)
else
Memo1.Lines.Add('Not working');
end;
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: CustomWinSocket);
begin
Memo2.Lines.Add(Socket.ReceiveText);
end;
在点击第二个按钮之前,如何确定我仍然连接? (发送数据的人)。
如果我违反任何规则,对不起我的英语不好并道歉。
答案 0 :(得分:0)
在点击第二个按钮之前,如何确定我仍然连接? (发送数据的人)。
在连接ClientSocket1时,在代码中设置CheckBox1.Checked := true
。
因此,在使用ClientSocket1.OnDisconnect
事件进行转录时,您可以将相同的复选框设置为false。
连接中断时会自动触发ClientSocket1Disconnect。
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Checkbox1.Checked:=false;
end;
现在,如果ClientSocket1
已连接,您可以使用CheckBox1作为指标。