6567|4

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WINCE SOCKET 编程如何设置超时 [复制链接]

请问一下,在WINCE下,使用SOCKET编程怎么样设置超时,
使用:
::setsockopt(m_Socket,SOL_SOCKET,SO_SNDTIMEO,(char *)&TimeOut,sizeof(TimeOut))==SOCKET_ERROR
则返回错误代码 10038
使用 select 返回一样的错误代码。
struct timeval timeout;
timeout.tv_sec = 2;
timeout.tv_usec = 0 ;
if(::select(m_Socket,NULL,NULL,NULL,&timeout) == SOCKET_ERROR)

sckNotSocket 10038 描述符不是套接字。

请问,大家都使用什么样的方法设置超时?

最新回复

一提交格式都变乱了,我做我WINCE下的socket通信,用select设置超时肯定没问题的  详情 回复 发表于 2009-12-3 16:03
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
SO_SNDTIMEO CE下不支持
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
是啊,有人说用
select(0,&fdRead,NULL,NULL,&aTime);
但是 这里用 select 并不是设置超时啊~!
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
wince下的确不支持SO_SNDLOWAT,SO_RCVLOWAT发送接收超时。
但可以通过select设置超时,以下是发送超时的例子:
        int rtn = 0, len = 0;
        fd_set fds = {0};
        struct timeval ti = { 3, 0}; /* 超时时间3s */
       
        FD_ZERO(&fds);
        FD_SET(s, &fds);
       
        rtn = select(s + 1, NULL, &fds, NULL, &ti);
        if(rtn>0)
        {
             if(FD_ISSET(s, &fds))
             {
                 len = send(s, buff, size, 0);
             }
               
        }
        else
        {  
             fprintf(stderr, "socket error: %d\r\n", WSAGetLastError());
             return SOCKET_ERROR;
        }
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
一提交格式都变乱了,我做我WINCE下的socket通信,用select设置超时肯定没问题的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表