有关TClientSocket一个奇怪的问题 ( 积分: 50 )

  • 主题发起人 主题发起人 burkin
  • 开始时间 开始时间
B

burkin

Unregistered / Unconfirmed
GUEST, unregistred user!
用的是非阻塞模式,使用Active:=true打开,服务端显示已经连接上了,但是查询这个active字段时,却不为true,这是什么原因啊,谢谢
如果不查询active字段,那应该查询哪个字段,显示已经连接上了呢
 
用的是非阻塞模式,使用Active:=true打开,服务端显示已经连接上了,但是查询这个active字段时,却不为true,这是什么原因啊,谢谢
如果不查询active字段,那应该查询哪个字段,显示已经连接上了呢
 
并且打开之后,马上用sendText发送信息时,服务端也是没有收到的,很奇怪啊,不知道怎么搞的啊
有碰到同样问题的人,说说你们的解决办法啊
 
有没有人知道这个问题啊,还请帮忙解答啊,这是怎么回事啊,谢谢了
 
在onconnect中进行发数据,
使用Active:=true打开后,并没有马上连上,这要看网络速度了,
 
Delphi5中有一个Socket的例子
%Delphi%/Demos/Internet/Chat
 
Socket连接是有一定时间的,你可以延时一段时间查询,或者你第2次发数据包的时候查询,就是True了!
延时的函数可以自己写一个,最好不要用sleep
我写了一个!
procedure Delay(mSecord : Dword);
var
t : Dword;
begin
t := GetTickCount;
while GetTickCount - t < mSecord do
application.processMessage;
end;

你调用延时的时候
Delay(2000);//延时2秒钟
 
while (not active) do
delay(100);
if (active) then
xxxx;
 
ClientSocket1.Socket.Connected
 
To:skyccf
你的方法不好,在一定程度上,写程序最好不用while语句
如果,网络不通或ServerSocket没有打开,这个程序不就死循环了嘛!
如果是有线还好,如果是无线网络,你的语句问题更大!
 
接受答案了.
 
后退
顶部