linux函数阻塞,Linux下connect()函数阻塞与非阻塞
各位好,今天遇到一个奇怪的问题。在写socket客户端的程序时,发现connect()函数有时阻塞,有时非阻塞。且大部分时间是非阻塞的。下面是代码:
socket_list[i].socket = socket(AF_INET,SOCK_STREAM,0);
setsockopt(socket_list[i].socket,SOL_SOCKET,SO_KEEPALIVE,&optval,sizeof(optval));
address.sin_family = AF_INET;
address.sin_addr.s_addr = netParam.srv[i].ip.s_addr;
address.sin_port = htons(netParam.srv[i].port);//(in_port_t)->(uint16_t)
len = sizeof(address);
printf("connect to srv %dn",i);
result = connect(socket_list[i].socket,(struct sockaddr *)&address,len);
if(result == -1)
{
socket_list[i].used = 0;
socket_list[i].pass = 0;
printf("can not connected to server %d.n",i);
}
else
{
printf("connected to server %d.n",i);
socket_list[i].used = 1;
xml_request(i);
}
请大家帮忙看看是啥个问题么,谢谢了。
linux函数阻塞,Linux下connect()函数阻塞与非阻塞相关推荐
- Linux下connect函数 阻塞 与 非阻塞 问题
一.概述 linux系统下,connect函数是阻塞的,阻塞时间的长度与系统相关.而如果把套接字设置成非阻塞,调用connect函数时会报错Operation now in progress,且err ...
- wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...
Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关 ...
- linux中c语言kbhit函数用法,C语言判断用户是否输入-非阻塞函数kbhit
一.基础研究 要从地址读取数据,肯定是要定义一个指针变量p,用它来实现变换地址和取值的功能.另外程序是当两个条件中的某一个出现时才停止,所以应该用while~do循环语句循环输出n和d,并用while ...
- 【Linux】进程等待wait/waitpid status详解 (非)阻塞等待(代码)
文章目录 进程等待原因 进程等待方法 wait waitpid 获取子进程status (非)阻塞等待 进程的非阻塞等待方式代码 进程的阻塞等待方式代码 进程等待原因 fork创建了子进程,子进程帮父 ...
- 非阻塞情况下connect产生EINPROGRESS错误
//原文地址:http://blog.csdn.net/saspss/article/details/8487678 .... 今天,在调试socket,非阻塞模式下,发现连接服务器时connect老 ...
- Socket 非阻塞模式下connect 返回EINPROGRESS(115)错误
今天再测试socket的时候,发现一个很奇怪的问题,就是客户端再connect的时候第一次connect总是会返回-1,errno是115,往往第二次连接就可以成功了.但是对于服务端来说,第一次连接已 ...
- instr函数 mysql_MySQL数据库下 INSTR函数功能简介说明
摘要: 下文讲述MySQL数据库下INSTR函数的功能及举例说明,如下所示: MySQL INSTR 功能及语法说明 INSTR 函数功能,返回指定字符串在源字符串的起始位置 INSTR 函数语法: ...
- mysql异步非阻塞方式_如何理解swoole异步非阻塞?
传统的apache2handler或php-fpm本质上都是短生命周期(请求后释放资源)的FastCGI运行模式. 请求来了,master进程会调用worker进程来处理,处理完后释放资源. 假设你在 ...
- 非阻塞式编程 php,简单介绍PHP非阻塞模式
非阻塞模式是指利用socket事件的消息机制,Server端与Client端之间的通信处于异步状态. 让PHP不再阻塞当PHP作为后端处理需要完成一些长时间处理,为了快速响应页面请求,不作结果返回判断 ...
最新文章
- 切换JAVAC的方法
- Android中五种常用的menu
- java版b2b2c社交电商springcloud分布式微服务 (九)服务链路追踪(Spring Cloud Sleuth)...
- Win10開始菜单打不开
- 抓wifi包工具linux,测试工具之在Ubuntu使用Wireshark抓无线数据包
- commons-lang3之StringUtils
- C# 或Asp.Net 将excel表格导入数据库
- (转)Spring Boot (十):邮件服务
- MFC画图(画线、画矩形、画刷画笔的使用)
- linux之创建大文件
- 零基础入门语义分割——Task1 赛题理解
- [转]隐马尔科夫模型HMM
- 大数据Hadoop学习文章汇总
- 机器学习入门-用Java实现简单感知机
- mysql workbench安装配置_Mysql WorkBench安装配置图文教程
- Java 基础 - List 遍历时为什么不能通过 for 循环进行删除,而使用 Iterator 可以 ?
- 京东云php环境配置,干货 | 京东云应用负载均衡(ALB)多功能实操
- 电子邮件营销与MailChimp。它是适合你
- 阿里达摩院最新FEDformer,长程时序预测全面超越SOTA | ICML 2022
- Torchlight(火炬之光)换装实现