关于在线程中建立Socket连接的问题!() 如果把建立和连接过程放到Synchronize里去呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 算了,看来这里也没有传说的那么神,这个问题我自己解决了就是在子线程中在其一个线程来进行连接,因为根据我这些天的测试,发现因为连接Socket的组件实际上运行于主线程,而我操作它却是在一个子线程中,涉及到线程同步的问题,可能子线程中的某些资源没有释放,所以无法响应主线程某些消息,所以我决定把连接在独立出来一试果然成功了。呵呵 虽然你解决了问题,但不明白其中的道理啊。SOCKET工作方式有阻塞和非阻塞两种,DELPHI自带的SOCKET控件,默认是非阻塞模式的(NonBlocking),只能在VCL主线程下执行,函数调用后都会立即返回,正确工作依赖于消息系统,所以只能在主线程下工作。在线程中需要用阻塞(BLOCKING)模式才可工作,与nonblocking完全不同,编程比较麻烦,比如非阻塞下读写函数READ、WRITE等,线程模式下都不能使用,得用Twinsocketstream类来完成读写等。这些东西帮助里都有,你没有好好看。其实许多第三方的SOCKET控件都比自带的好用。 阻塞模式下,只能使用Twinsocketstream来完成读写操作 呵呵,这时候都跳出来说一番大道理,早干吗来着。其实这也是CSDN的一贯风格-->马后炮,呵呵不过还是谢谢大家我的分数给你们平分了,谢谢 你这种做法太粗放了,不把CSDN放在眼里,你凌晨提的问题,不到中午就说已经很久了,怎么还没有人回答?然后自己用最粗糙的办法解决了,还沾沾自喜呢!!不稀罕你给的分,收回去吧!!! Idtcpclient在服务器端断开时居然不触发ondisconnect事件? 求一查询方法,帮忙看看~~~分不多了,哎~~ 求SQL语句,Delphi7 Paradox Query1.Sql Dbgrid 怎样显示不完整记录得hint? 请看一下这个sQL语句 请问在什么时候要加[]? 怎么知道Microsoft Outlook或著Oulook Express已经打开了?如果打开了,怎样关闭它? ◇◆◆◆◇ListView中如何使特定的某一行的字体变为“粗体”? 寻找目标!!!十分感谢! 实现一个画图功能。 怎样对文件进行加密和解密 问题?
就是在子线程中在其一个线程来进行连接,因为根据我这些天的测试,发现因为连接Socket的
组件实际上运行于主线程,而我操作它却是在一个子线程中,涉及到线程同步的问题,可能子线
程中的某些资源没有释放,所以无法响应主线程某些消息,所以我决定把连接在独立出来
一试果然成功了。呵呵
SOCKET工作方式有阻塞和非阻塞两种,DELPHI自带的SOCKET控件,默认是非阻塞模式的(NonBlocking),只能在VCL主线程下执行,函数调用后都会立即返回,正确工作依赖于消息系统,所以只能在主线程下工作。
在线程中需要用阻塞(BLOCKING)模式才可工作,与nonblocking完全不同,编程比较麻烦,比如非阻塞下读写函数READ、WRITE等,线程模式下都不能使用,得用Twinsocketstream类来完成读写等。
这些东西帮助里都有,你没有好好看。其实许多第三方的SOCKET控件都比自带的好用。
其实这也是CSDN的一贯风格-->马后炮,呵呵不过还是谢谢大家
我的分数给你们平分了,谢谢
不稀罕你给的分,收回去吧!!!