博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
network
阅读量:5795 次
发布时间:2019-06-18

本文共 1801 字,大约阅读时间需要 6 分钟。

#include 
#include
#include
#include
#include
#include "server_network.h"int sock_setnonblock(sock_t s){ int flags = 0; flags = fcntl(s, F_GETFL); if (flags < 0) return flags; flags |= O_NONBLOCK; if (fcntl(s, F_SETFL, flags) < 0) return -1; return 0;}int sock_unsetnonblock(sock_t s){ int flags = 0; flags = fcntl(s, F_GETFL); if (flags < 0) return flags; flags &= ~O_NONBLOCK; if (fcntl(s, F_SETFL, flags) < 0) return -1; return 0;}int sock_setnodelay(sock_t s){ int flag =1; return setsockopt(s, SOL_TCP, TCP_NODELAY, (char *)&flag, sizeof(flag));}int sock_set_recv_timeout(sock_t s, int sec){ struct timeval timeout; timeout.tv_sec = sec; timeout.tv_usec = 0; return setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout)); }int sock_set_snd_timeout(sock_t s, int sec){ struct timeval timeout; timeout.tv_sec = sec; timeout.tv_usec = 0; return setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout, sizeof(timeout));}int sock_set_keepalive(sock_t s, int timeout){ int val = 1; //设置成keepalive模式 if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &val, sizeof(val)) < 0) { return -1; } //设置探测时间 val = timeout; if (setsockopt(s, SOL_TCP, TCP_KEEPIDLE, &val, sizeof(val)) < 0) { return -1; } //设置探测间隔时间,1s val = 1; if (setsockopt(s, SOL_TCP, TCP_KEEPINTVL, &val, sizeof(val)) < 0) { return -1; } //设置探测次数,3次 val = 3; if (setsockopt(s, SOL_TCP, TCP_KEEPCNT, &val, sizeof(val)) < 0) { return -1; } return 0;}

 

转载于:https://www.cnblogs.com/unixshell/p/3844922.html

你可能感兴趣的文章
三种数据分析法提升电商运营
查看>>
哪个线程执行 CompletableFuture’s tasks 和 callbacks?
查看>>
《数据科学与大数据分析——数据的发现 分析 可视化与表示》一2.10 练习
查看>>
Oracle ASM 翻译系列第六弹:高级知识 如何映射asmlib管理的盘到它对应的设备名...
查看>>
多线程之volatile关键字
查看>>
如何判断webview是不是滑到底部
查看>>
Raptor实践2——控制结构
查看>>
Smartisan OS一步之自定义拖拽内容
查看>>
海贼王十大悲催人物
查看>>
org.hibernate.MappingException: No Dialect mapping for JDBC type: -1 搞定!
查看>>
热点热词新闻资讯API开放接口(永久免费开放)
查看>>
【第二章】 IoC 之 2.2 IoC 容器基本原理 —— 跟我学Spring3
查看>>
8.1_Linux习题和作业
查看>>
我的友情链接
查看>>
11.排序算法_6_归并排序
查看>>
Redis redis-cli 命令列表
查看>>
.NET框架设计—常被忽视的框架设计技巧
查看>>
ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结
查看>>
BigDecimal 舍入模式(Rounding mode)介绍
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 infoSign
查看>>