C connect实现Timeout效果(Linux)
C connect函数是阻塞的,现要实现非阻塞式的connect。
int SocketClient::connectTimeOut(const int &connect_fd, const int &timeout,const sockaddr_in &server)
{
int error=-, len;
len = sizeof(int);
timeval tm;
fd_set set;
unsigned long ul = ; ioctl(connect_fd, FIONBIO, &ul); //设置为非阻塞模式 bool ret = false;
if( connect(connect_fd, (struct sockaddr *)&server, sizeof(struct sockaddr)) == -)
{
tm.tv_sec = timeout;
tm.tv_usec = ;
FD_ZERO(&set);
FD_SET(connect_fd, &set);
if( select(connect_fd+, NULL, &set, NULL, &tm) > )
{ getsockopt(connect_fd, SOL_SOCKET, SO_ERROR, &error, (socklen_t *)&len); if(error == ) ret = true;
else ret = false;
} else ret = false;
}
else ret = true;
ul = ; ioctl(connect_fd, FIONBIO, &ul); //设置为阻塞模式 if(!ret){
close(connect_fd);
// fprintf(stderr,"Connect server fail\n");
}
return ret;
}
C connect实现Timeout效果(Linux)的更多相关文章
- C connect实现Timeout效果(Windows)
int SocketClient::connectTimeOutForWin(SOCKET &connect_fd, const int &timeout, const sockadd ...
- 记一次安装kolla遇到DockerException: Error while fetching server API version: Timeout value connect was Timeout的问题
1)环境信息: docker版本:17.09,当docker的版本是12.06时,也会报这个错误 [root@localhost ~]# docker --version Docker version ...
- remote desktop connect btw Mac, Windows, Linux(Ubuntu) Mac,Windows,Linux之间的远程桌面连接
目录 I. 预备 II. Mac连接Windows III. Windows连接Mac IV. Windows连接Ubuntu V. Mac连接Ubuntu VI. Ubuntu连接Mac VII, ...
- adb connect 出现timeout的处理方式
默认的timeout是5000ms毫秒,如果是断点调试的时候,经常会出现timeout, 所以修改这个值就不会出现timeout了, Eclipse下的设置位置: Window->Prefere ...
- Linux下connect超时处理
1.前言 最近在写一个测试工具,要求快速的高效率的扫描出各个服务器开放了哪些端口.当时想了一下,ping只能检测ip,判断服务器的网络是连通的,而不能判断是否开放了端口.我们知道端口属于网络的传输层, ...
- linux脚本实现自己主动输入password
使用Linux的程序猿对输入password这个举动一定不陌生,在Linux下对用户有严格的权限限制,干非常多事情越过了权限就得输入password.比方使用超级用户运行命令,又比方ftp.ssh连接 ...
- 【Linux】scp“免密” 远程copy较多文件
一.linux脚本实现自动输入密码 使用Linux的程序员对输入密码这个举动一定不陌生,在Linux下对用户有严格的权限限制,干很多事情越过了权限就得输入密码,比如使用超级用户执行命令,又比如ftp. ...
- Windows和Linux下 Java开发ping工具类
package com.test.util; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...
- linux下安装haproxy作为端口转发服务器,以及安装keepalived作为haproxy高可用方案
一.安装haproxy作为端口转发服务器(主服务器:172.28.5.4,备服务器:172.28.5.8,浮点IP为:172.28.5.6) 1.安装依赖包 yum -y install wget g ...
随机推荐
- 织梦后台如何生成站点地图sitemap.xml
第一步在网站根目录建立sitemap.php文件 内容如下: 写一个计划任务文件命名为generate_sitemap.php,放在/plus/task目录里,文件内容如下: <?php//定时 ...
- html5 表單屬性
新的 form 属性: autocomplete novalidate 新的 input 属性: autocomplete autofocus form form overrides (formact ...
- EChart.js 笔记一
一直对数据可视化比较感兴趣,当年 Alibaba 年报晚会上的大屏显示可谓是技惊四座,够震撼,将数据之美展现得淋漓尽致. 国内的前端数据可视化插件中,echart.js 算是热度很高的,也容易上手,算 ...
- [西安交大附中集训] d6 删边(cip)
B. 删边(cip.cpp/in/out 1S/256M) 题面 给出一个没有重边和自环的无向图,现在要求删除其中两条边,使得图仍然保持连通. 你的任务是计算有多少组不合法的选边方案.注意方案是无序二 ...
- .net core 2.0 MVC区域
区域 创建对应的目录结构 Areas System Controllers Views 在Startup.cs 注册路由 在控制器上方加上`[Area("system")]` // ...
- JavaWeb项目自动部署,持续集成
来公司以后,学会两种JavaWeb项目,自动部署. 1.jenkins持续集成.自动化部署 (1)安装jenkins----------推荐nginx跳转方式,以域名方式 (2)nginx采用不同域名 ...
- 【XSY2691】中关村 卢卡斯定理 数位DP
题目描述 在一个\(k\)维空间中,每个整点被黑白染色.对于一个坐标为\((x_1,x_2,\ldots,x_k)\)的点,他的颜色我们通过如下方式计算: 如果存在一维坐标是\(0\),则颜色是黑色. ...
- 【XSY2716】营养餐 博弈论
题目描述 给你一棵有根树,每个点有两个属性\(a,b\) 两人轮流操作,每次要减小一个点的\(a\)值,要求 \[ a_x\geq\sum_{i\in child(x)}a_ib_i \] 保证初始状 ...
- 【XSY1551】往事 广义后缀数组 线段树合并
题目大意 给你一颗trie树,令\(s_i\)为点\(i\)到根的路径上的字符组成的字符串.求\(max_{u\neq v}(LCP(s_u,s_v)+LCS(s_u,s_v))\) \(LCP=\) ...
- UOJ277【清华集训2016】定向越野(计算几何,最短路)
UOJ题目传送门 显然最优的路径只会经过若干条两个圆的公切线和若干段圆弧 为了方便,把起点终点看成两个半径为\(0\)的圆也行. 最烦的就是算两个圆的公切线了,一共有四条 对于靠外面的两条,我们把切线 ...