当前位置: 代码迷 >> PB >> WINSOCK.PBL中,怎么实现同步通讯(阻塞模式)的超时处理
  详细解决方案

WINSOCK.PBL中,怎么实现同步通讯(阻塞模式)的超时处理

热度:484   发布时间:2016-04-29 06:43:22.0
求助:WINSOCK.PBL中,如何实现同步通讯(阻塞模式)的超时处理
本帖最后由 swordlhh 于 2013-06-25 23:18:15 编辑

研究了一下pslib21.dll,根据说明,似乎setsockopt方法不支持
SO_SNDTIMEO和SO_RCVTIMEO选项。但是,在winsock对象中,却
又定义了他们的。
在pslib21.dll中,应该就是调用windows提供的接口,连名字都一样。
但设置了这个选项,发现并未生效(比如接收设置了超时30秒,但是如果没给应答,
会一直阻塞直到对方关闭)

网上搜的一大堆都是你抄我我抄你的异步通讯模式。没找到解决方法。

请高人帮忙指导,急!

------解决方案--------------------
用winsock.ocx控件,比那个winsock.pbl好用多了

pb8以前的版本必须用winsock.pbl,好像是因为部分套接字的问题
------解决方案--------------------
试一下加一个定时器,每 send 完以后,开始计时 30秒,如果成功收到返回信息,则停止计时。如果超时则做相应的处理。