Socket常常超时~

Socket常常超时~~~~~~~~`

2011-05-05 09:47匿名  |  分类:常见软件  |  浏览1459次
我有两个QQ炫舞的角色,但是如果到了周六周日的话,有点券拿,我上了其中一个角色,但是在不同的区,另外的一个角色可以拿同样的点券吗??
我有更好的答案
精彩回答
检举| 2011-05-06 00:43
举例: 

s=socket(); 
设置s为non-blocking; 
connect(s,..); 
FD_SET...; 
rc = select(..., 10s); 
if (rc == 0) 表示10s超时了。 

这个超时的意思是:10s之内,select中所有socket的事件均未产生(如果至少有一个产生,则rc大于0) 

注意:这个10s跟connect本身的超时机制完全无关,前者的设置不影响后者。10s后select的返回,表明10s内connect还没成功,connect可能还在按自己的超时机制(例如慢启动)尝试重连(当然它最终也有个超时)。 

至于connect本身的超时是否可以设置,可能各系统不一样。 

顺便提醒:connect的socket必须是non-blocking类型,否则,connect会阻塞,也就没必要用select来检测是否连接成功。另外,那个s要注册到write类型的fd中,即select的第3个参数中。 

其他listen,recv什么的,完全类似(但listen,recv本身没有什么超时概念)。只不过listen的和recv的socket,要注册到read的fd中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值