用CLIENTSOCKET连接SERVERSOCKET,为什么需要点两次才能建立连接?(10分)

L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!
用CLIENTSOCKET连接SERVERSOCKET,为什么需要点两次才能建立连接?
按钮点击事件如下:
ClientSocket1.Host:=NETFlatEdit1.Text;
ClientSocket1.Open;
ClientSocket1.Socket.SendText('ok');
 
TClientSocket默认是使用非阻塞方式(ctNonBlocking)连接的,因此执行到ClientSocket1.Socket.SendText('ok');时,ClientSocket1.Open;
的动作还没完成,也就是没有连接上,数据当然无法正常发送啰。把发送代码写在OnConnect事件里,相信这个问题就解决了。
 
接受答案了.
 
顶部