to diecode(老死鸡) "在OnConnect时间中调用SendText" 这个我想到过了, 主要是我本想在一个线程里完成connect-send-receive,然后结束线程。 后来我使用了下面的办法 在线程的execute里 try ClientSocket.Active := true; except on ESocketError do MessageDlg('Unable to Connect to Server ' + #13 + 'Please Try Again!',mtInformation,[mbOk],0); end; Self.FWaiting := true; while Self.FWaiting do begin Application.ProcessMessages; end; ClientSocket.Send(data); end; 我在onConnect里将FWaiting设成false; 在execute里用 Application.ProcessMessages; 等待。等连接上了以后我再send。 receive也用了同样的道理。 但不好的地方就是如果服务器出了问题,线程就不会退出,一直在那边等。除非自己再加一些控制的代码,好麻烦。我只是想再一个线程里处理所有操作,然后关掉Socket,结束线程。不知有没有好的办法呢? to Wango(我为程狂) 好像没明白我的意思,不过谢了:)
*************
"在OnConnect时间中调用SendText"
这个我想到过了, 主要是我本想在一个线程里完成connect-send-receive,然后结束线程。
后来我使用了下面的办法
在线程的execute里
try
ClientSocket.Active := true;
except on ESocketError do
MessageDlg('Unable to Connect to Server ' + #13 + 'Please Try Again!',mtInformation,[mbOk],0);
end;
Self.FWaiting := true;
while Self.FWaiting do
begin
Application.ProcessMessages;
end;
ClientSocket.Send(data);
end;
我在onConnect里将FWaiting设成false;
在execute里用
Application.ProcessMessages;
等待。等连接上了以后我再send。
receive也用了同样的道理。
但不好的地方就是如果服务器出了问题,线程就不会退出,一直在那边等。除非自己再加一些控制的代码,好麻烦。我只是想再一个线程里处理所有操作,然后关掉Socket,结束线程。不知有没有好的办法呢?
to Wango(我为程狂)
好像没明白我的意思,不过谢了:)
thanks