高手就是高手!!!!!!(30分)

  • 主题发起人 主题发起人 huait
  • 开始时间 开始时间
H

huait

Unregistered / Unconfirmed
GUEST, unregistred user!
一个ClientSocket控件的使用问题
在Button的Click事件中
var
i:integer;
begin
for i:=1 to 10 do
begin
C_Socket.Address:='192.168.52.7';
C_Socket.Active:=true;
C_Socket.Socket.SendText('我来了');
C_Socket.Active:=false;
end;
就出错,可我在C_Socket.Socket.SendText('我来了');前加一句ShowMessage('xxxx');
就可以,
请问高手怎么解决。不加那一句怎么解决
 
急的我。。。没有人回答吗?
 
Try!
var
i:integer;
Socket: TClienteSocket;
begin
for i:=1 to 10 do begin
Socket.Active := False;
Socket.Address := '192.168.52.7';
Socket.Open;
while not Socket.Active do begin
Application.ProcessMessage;
sleep(1000);
end;
Socket.SendText( '我来了');
end;
 
不知道你使用的是同步模式(阻塞模式)还是异步模式(非阻塞模式),若是异步模式,则
应该等到connected状态后再发送数据。
 
是这样的,既然是为了实现循环,没必要在循环中加入Socket.Active := true;
和Socket.Active := False;
procedure TForm1.Button5Click(Sender: TObject);
var
i:integer;
begin
for i:=1 to 10 do
beginclient.Socket.SendText('i am coming');
end;
 
先Close然后Active呀.

循环的时候间断开和关。
 
后退
顶部