Linux下Socket连接超时的一种实现方法

2016-01-29 17:38 2 1 收藏

Linux下Socket连接超时的一种实现方法,Linux下Socket连接超时的一种实现方法

【 tulaoshi.com - Linux 】

目前各平台通用的设置套接字(Socket)连接超时的办法是:
创建套接字,将其设置成非阻塞状态。 调用connect连接对端主机,如果失败,判断当时的errno是否为EINPROGRESS,也就是说是不是连接正在进行中,如果是,转到步骤3,如果不是,返回错误。 用select在指定的超时时间内监听套接字的写就绪事件,如果select有监听到,证明连接成功,否则连接失败。  以下是Linux环境下的示例代码:


#include <stdlib.h
#include <stdio.h
#include <unistd.h
#include <fcntl.h
#include <sys/types.h
#include <sys/socket.h
#include <netinet/in.h
#include <errno.h
#include <time.h

int main(int argc, char *argv[])
{
        int fd, retval;
        struct sockaddr_in addr;
        struct timeval timeo = 来源:https://www.tulaoshi.com/n/20160129/1502273.html

延伸阅读
标签: PS PS教程
我在论坛里发过一个请求帮助的帖子,我得目的是把一只狗的狗头抠出来,里面有不少人用了抽出,感觉效果不是很好,在这里我把我的方法说一下,如果大家有好的方法也请跟贴说明,互相学习。 原图:     最后效果: [next] 第一步打开原图 第二步选取画笔工具 调整画笔笔尖形状  渐变   后面得数值 ...
标签: 服务器
在Linux下实现批量屏蔽IP地址的方法   Netfilter/IPtables 的问题 在Linux中,可以很简单地用netfilter/iptables框架禁止IP地址: 代码如下: $ sudo iptables -A INPUT -s 1.1.1.1 -p TCP -j DROP 如果你想要完全屏蔽一个IP地址段,你可以用下面的命令很简单地做到: 代码如下: $ sudo iptables -A INP...
  数据的安全性是人们在使用计算机中最重要的问题之一。通常情况下,人们会在服务器环境中采用硬盘镜像技术,以达到数据的双重备份。同样在Linux环境下,我们可以采用这种技术。在Linux环境下,我们可以采用Raidtool工具,不仅可以将两个硬盘进行镜像。还可以制作软RAID0、RAID4、RAID5。说是软RAID,是因为通常情况下,RAID盘是通过专用...
作者: TechRepublic.com 密码安全是安全信息系统的基石。不幸的是,用户对此往往忽略了或是没有给予足够的重视。只要用户及时采取措施来保护系统密码,那么就可以防范黑客的攻击。让我们一起探讨一下如何设置Linux服务器系统中足够安全的密码。 密码安全概述 自从人类开始使用电脑以来,主要是靠密码来限制对系统...
标签: Web开发
上网找了一些资源,才弄明白这是编码的问题,我的服务器端发送过来的数据是GB2312编码的,而AJAX把接收到的数据都当成UTF-8编码的。 网上的很多解决方法都是服务器端基于PHP、JSP等的,要改变这些的编码方式都比较简单。但是我的服务器端是用了C编写的CGI程序,用于嵌入式系统中的,所有的输出都是用了printf。 最后找到一个在linux下的头文...