怎样动态的改变socket的host!很急,在线等待!(50分)

  • 主题发起人 主题发起人 wally
  • 开始时间 开始时间
W

wally

Unregistered / Unconfirmed
GUEST, unregistred user!
本来ClientSocket1是和另外一个相连,现在我想改变成和 edit2.text的 host相连,却
报错说不能改变已经是活动的连接,怎么办
ClientSocket1.Active:=False;
ClientSocket1.Host:=edit2.text;
ClientSocket1.Active:=true;
 
中间隔上个一秒钟看看可以不
或者干脆放两个按钮事件里面试一下。
 
这样不可以,我早就试过了
 
ClientSocket1.close;
ClientSocket1.Host:=edit2.text;
ClientSocket1.open;
 
ClientSocket1.close;
ClientSocket1.Host:=edit2.text;
ClientSocket1.open;

ClientSocket1.Active:=False;
ClientSocket1.Host:=edit2.text;
ClientSocket1.Active:=true;
有什么大的区别吗?好像没有呀!
 
可是我用OPEN和CLOSE就能动态改变啊。不会报错!
 
ClientSocket1.Active:=False;
//中间最好等待几秒,,,
ClientSocket1.Host:=edit2.text;
ClientSocket1.Active:=true;
 
win2000下就没问题啦
 
等几秒种的函数是sleep()吗?

我是这样作的

procedure TForm1.Button1Click(Sender: TObject);
begin

ClientSocket1.Host:=edit2.text;
ClientSocket1.Open;
sleep(3000);
ClientSocket1.Socket.SendText('Test') ;

end;
结果发现第一次点击服务器端无反映,第二次点击的时候才会收到test字符串
 

tim:=Now;
while Now-tim<0.00001 do
Application.ProcessMessages;
 
不要用sleep,因为用sleep程序什么都不做
不是等待,是死那了
这样试试
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Active:=False;end;
end
等会按button2
procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Host:=edit2.text;
ClientSocket1.Active:=true;
end
 
多人接受答案了。
 
后退
顶部