关于indy的Tcpclient读取服务端发的信息的问题。(100分)

  • 主题发起人 主题发起人 failer
  • 开始时间 开始时间
F

failer

Unregistered / Unconfirmed
GUEST, unregistred user!
indy9有一个chat的demo中,client端使用一个Timer来查询从server端发来的消息。但是client端会在连接后马上失去响应。将Timer禁止后不会失去响应,但是就收不到server端发来的消息了。这是为何?
 
我也是对这个不理解,想听听
 
因为Indy使用的是阻塞方式通讯,如果连接、接收和发送数据在主线程,在任务完成之前自然会失去响应,禁止timer,程序就失去了定时接收的机会,自然收不到服务端的消息。
 
解决的办法是在主线程之外开设一个线程进行网络通讯,事实上这也是indy推荐的方式。如果要用非阻塞通讯,就不会出现这个现象,可使用Turbopower internet pro组件。
 
请问乡村月光,那儿有Turbopower internet pro呢?(playicq收费了,有其他好地方吗?)
 
用IdAntiFreeze1试一下,在indymisc页,可以解决你的问题
 
IdAntiFreeze需要设置哪些属性呢?
 
to failer:
在哪里下载我不知道,我是在一张光盘上找到的,原来是1.13版,后来去它的网站下载了一个1.14升级,居然成功,有源码,如果需要,可和我联系:amdom@mail.ru或者amdom@mail333.com
 
后退
顶部