免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8878 | 回复: 12
打印 上一主题 下一主题

[函数] 请教关于setsockopt函数中对于超时参数设置的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-04-23 20:45 |只看该作者 |倒序浏览
我要写超时参数,看了网上一下文章及unix帮助,有一些疑问,有的文章介绍超时的类型是struct timeval型,而有的文章介绍是int型,我都试了但系统报错,"rotocol not available",不知是否如下所写,请指正

struct timeval stTimeOut;
stTimeOut.tv_sec=5;
stTimeOut.tv_usec=0;
(略)
if(setsockopt(nSocket,SOL_SOCKET,SO_RCVTIMEO,(char*)&stTimeOut,sizeof(stTimeOut))==-1)
{
        shutdown(nSocket,0);
        close(nSocket);
        return SET_SOCKOPT_ERR;
}
执行时直接报错"rotocol not available"

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-04-23 22:49 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

你man一下你的setsockopt,
它目前未必支持SO_RCVTIMEO选项。

论坛徽章:
0
3 [报告]
发表于 2004-04-24 05:54 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

可是在头文件中有啊?

论坛徽章:
0
4 [报告]
发表于 2004-04-24 08:20 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

我查了一下,我的机器里只支持以下几种协议类型:

  1. #define IPPROTO_IP              0               /* dummy for IP */
  2. #define IPPROTO_ICMP            1               /* control message protocol */
  3. #define IPPROTO_IGMP            2               /* group mgmt protocol */
  4. #define IPPROTO_GGP             3               /* gateway^2 (deprecated) */
  5. #define IPPROTO_IPIP            4               /* IP inside IP */
  6. #define IPPROTO_TCP             6               /* tcp */
  7. #define IPPROTO_EGP             8               /* exterior gateway protocol */
  8. #define IPPROTO_PUP             12              /* pup */
  9. #define IPPROTO_UDP             17              /* user datagram protocol */
  10. #define IPPROTO_IDP             22              /* xns idp */
  11. #define IPPROTO_TP              29              /* tp-4 w/ class negotiation */
  12. #define IPPROTO_ESP             50              /* encap. security payload */
  13. #define IPPROTO_AH              51              /* authentication header */
  14. #define IPPROTO_RSVP            46              /* resource reservation proto */
  15. #define IPPROTO_EON             80              /* ISO cnlp */
  16. #define IPPROTO_IFMP            101             /* Ipsilon Flow Mgmt Protocol*/

  17. #define IPPROTO_RAW             255             /* raw IP packet */
  18. #define IPPROTO_MAX             256

复制代码

论坛徽章:
0
5 [报告]
发表于 2004-04-24 13:04 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

[quote]原帖由 "parady"][/quote 发表:
不是协议,是socket参数

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-04-24 15:59 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

你man了没有,
看了没有呀?
头文件里有又能怎么样?
说了怎么不听呢。

论坛徽章:
0
7 [报告]
发表于 2004-04-25 17:04 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

那请教该如何设置连接超时时间呢?

论坛徽章:
0
8 [报告]
发表于 2004-04-25 17:30 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

用过一段和你一样的代码 没有问题
莫非你的系统根本就不支持?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2004-04-25 23:27 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

参考《unix网络编程:卷一》。
里面作者给出了三种方法,其中就
有你的这一种,另外两种是用alarm和select。

论坛徽章:
0
10 [报告]
发表于 2004-04-26 08:23 |只看该作者

请教关于setsockopt函数中对于超时参数设置的问题

可怜的SCO操作系统不支持.
其他应该没问题,同楼上所述.
我一般不使用ALARM,因为可能与其他设置的ALARM 冲突.
SELECT 调用是可以的.
另外,如果是不确定数据长度的话,建议采用设置非阻塞参数.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP