如何结束 socket 的等待状态(50分)

  • 主题发起人 主题发起人 lshren
  • 开始时间 开始时间
L

lshren

Unregistered / Unconfirmed
GUEST, unregistred user!
我用阻塞类型的 SOCKET 通讯(传输文件),在发出 receivetext 命令后,没收到信息时,
SOCKET 一直处于等待状态,此时,如何结束 socket 的等待状态, 而不断开连接。
 
阻塞类型的SOCKET通讯应该可以调用
function waitfordata(socketstream, milisecond): Boolean
如果返回状态为真,则必定能够接收到数据。
 
to pseud:
同志,请看清楚问题,我是说在应该接收数据是,服务端没有发送数据(由于各种原因),
这样我做为客户端等待到一定时间就结束此次接收。而你说的方法是判断 socket 是否准备
好接收数据,而且,你的方法是用于TwinsocketStream 而不是用于 TClientSocket,
TWinsocketstream 是不能传送字符串的,也就是说,你的方法还有许多问题你并没有考虑。
 
用非阻HOLD方式。
 
谁说TWinsocketstream 不能传字符串?你不回用罢了。
TWinsocketstream 太好用了,我都是用它来做的。
 
to onedolph:
我承认我不会用TWinsocketStream传送字符串,可能我很笨, 我当时认为将字符串转化为
字节流,在另外一端再将字节流转化为字符串,这样做好象很苯。在此愿向你请教,请帮
帮忙。

多谢。
 
setsockopt可以指定超时值
SO_RCVTIMEO Receive time-out
SO_SNDTIMEO Send time-out
 
请问如何对中途取消的socket进行错误保护?

我使用了tclientsocket控件,在连接远端服务器或者从服务器接收邮件,发送邮件过程中需要
可以随时中断连接,但是总是报告内存错误....
 
多人接受答案了。
 
后退
顶部