Chinaunix

标题: 求助vc下keepalived [打印本页]

作者: newnew0601    时间: 2014-05-18 14:34
标题: 求助vc下keepalived
遇到一个问题,求解。希望各位大侠指导一下,写一个心跳,vc下的winsock.h没定义下面三个东东
TCP_KEEPIDLE/TCP-KEEPINTVL/TCP_KEEPCNT
我自己加了一下,分别是,4,5,6,
然后在setscokopt函数中分别写数。可是返回出错,出错代码是10042,这个地方就搞不清是什么原因,看哪位遇到过,能给说说,或提供个思路,谢谢了

作者: newnew0601    时间: 2014-05-18 14:56
#define TCP_NODELAY     0x0001
#define TCP_KEEPIDLE        0x0004
  sRet = setsockopt (s, IPPROTO_TCP, TCP_NODELAY,(ST_CHAR *) &noDelay, sizeof(noDelay));
  sRet= setsockopt (s, IPPROTO_TCP, TCP_KEEPIDLE, (ST_CHAR *)&keepIdle, sizeof(keepIdle));
第二步sRet=-1了。查错误是10042,求解
作者: newnew0601    时间: 2014-05-18 16:39
sRet= setsockopt (s, IPPROTO_TCP, TCP_KEEPIDLE, (ST_CHAR *)&keepIdle, sizeof(keepIdle));貌似这句有问题,sRet= setsockopt (s, SOL_SOCKET, TCP_KEEPIDLE, (ST_CHAR *)&keepIdle, sizeof(keepIdle));
作者: newnew0601    时间: 2014-05-18 16:39
明天测试下,看是不是这个问题
作者: hellioncu    时间: 2014-05-18 19:37
10042 Bad protocol option
作者: hellioncu    时间: 2014-05-18 19:43
windows下只有SO_KEEPALIVE吧,你那几个应该是不支持的
作者: newnew0601    时间: 2014-05-19 08:31
windows下的确没有,难道实现不了这个功能?
作者: hellioncu    时间: 2014-05-19 08:42
newnew0601 发表于 2014-05-19 08:31
windows下的确没有,难道实现不了这个功能?


一般要心跳功能,建议自己在应用层实现




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2