int n=HEARTBEAT_FIRST_TIME;
setsockopt(m_nSocket,IPPROTO_TCP,TCP_KEEPINTVL,&n,sizeof(int));就这两句话,返回-1,errno返回42
网上大家的代码都是SOL_TCP,但是IOS找不到这个,所以我就用的IPPROTO_TCP 但是就不成功了 求救啊求救
setsockopt(m_nSocket,IPPROTO_TCP,TCP_KEEPINTVL,&n,sizeof(int));就这两句话,返回-1,errno返回42
网上大家的代码都是SOL_TCP,但是IOS找不到这个,所以我就用的IPPROTO_TCP 但是就不成功了 求救啊求救
解决方案 »
- IOS5.1英语通
- 说说自己公司用什么版本XCODE
- 黑苹果可以将Xcode项目文件下载到iPhone上运行么
- ffmpeg 在Xcode 项目中 运用的 问题!了解的进来看看。急⋯⋯
- 求IOS开发优秀的入门书籍
- 开发IOS程序,买ipad mini,还是Mac mini好些?
- IOS滑动问题求解释 求帮忙
- 请问下java下得writeUTF 和readUTF方法,在ios里面对应的是什么方法?
- ios如何提取网页中的信息
- object-c能不能设置自己连接的AP,以及设置自己的IP地址
- 请问这种场景下,如何通过performSegueWithIdentifier:sender:来控制跳转
- 关于横屏应用中插入个别竖屏view问题 求大神指点
先谢谢啦
出现错误立马打印的 errno是42
完整代码是:int m_nSocket=socket(AF_INET,SOCK_STREAM,0); //强制关闭
linger Linger;
Linger.l_onoff=1;
Linger.l_linger=0;
setsockopt(m_nSocket,SOL_SOCKET,SO_LINGER,(const char *)&Linger,sizeof(Linger));
//复用端口
int bReuseAddr=1;
setsockopt(m_nSocket,SOL_SOCKET,SO_REUSEADDR,(const char *)&bReuseAddr,sizeof(int));
//Nagle算法
int bNoDelay=1;
if(setsockopt(m_nSocket,IPPROTO_TCP,TCP_NODELAY,(const char *)&bNoDelay,sizeof(int))!=0)
throw("TCP_NODELAY ERROR");
//开启心跳检测
int bKeepAlive=1;
setsockopt(m_nSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&bKeepAlive,sizeof(int)); int n=HEARTBEAT_FIRST_TIME;
setsockopt(m_nSocket,IPPROTO_TCP,TCP_KEEPINTVL,&n,sizeof(int)); //这里返回-1,errno是42
这算是完整代码吧,把上面那些屏蔽了 只开启心跳检测 还是不行哈
先谢谢啦
出现错误立马打印的 errno是42
完整代码是:int m_nSocket=socket(AF_INET,SOCK_STREAM,0); //强制关闭
linger Linger;
Linger.l_onoff=1;
Linger.l_linger=0;
setsockopt(m_nSocket,SOL_SOCKET,SO_LINGER,(const char *)&Linger,sizeof(Linger));
//复用端口
int bReuseAddr=1;
setsockopt(m_nSocket,SOL_SOCKET,SO_REUSEADDR,(const char *)&bReuseAddr,sizeof(int));
//Nagle算法
int bNoDelay=1;
if(setsockopt(m_nSocket,IPPROTO_TCP,TCP_NODELAY,(const char *)&bNoDelay,sizeof(int))!=0)
throw("TCP_NODELAY ERROR");
//开启心跳检测
int bKeepAlive=1;
setsockopt(m_nSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&bKeepAlive,sizeof(int)); int n=HEARTBEAT_FIRST_TIME;
setsockopt(m_nSocket,IPPROTO_TCP,TCP_KEEPINTVL,&n,sizeof(int)); //这里返回-1,errno是42
这算是完整代码吧,把上面那些屏蔽了 只开启心跳检测 还是不行哈
错误是用perror打印的吗?应该有错误描述啊?