linux将connect函数设置为非阻塞的模式
2020-08-03 15:34
405 查看
Linux中connect函数有两种情况:
1、如果是连接本机的IP地址,connect函数是不阻塞的,连接成功就返回0,connect连接失败就返回-1.
2、如果是连接外部设备,connect函数默认是阻塞的,将connect函数设为不阻塞有这样几种方法:
- 利用signal和定时器函数alarm可以将connect函数的阻塞中断掉,但是TCP连接没有中断,在后续的时间内,如果外部设备打开之后,不用调用connect函数自己就会进行连接,
- 可以参考一下博客。https://www.cnblogs.com/crowpurple/p/5248361.html,思路是将connect函数的状态设为非阻塞的状态。
sigset(SIGALRM, u_alarm_handler); alarm(2); int rec = connect(cfd,(struct sockaddr *)&serv_addr,sizeof serv_addr); printf("error code %d\n", errno); alarm(0);
相关文章推荐
- socket通信阻塞模式下,设置发送和接受函数超时
- 非阻塞模式的设置、设置socket为非阻塞模式 解决connect阻塞问题
- 封装函数设置I/O的阻塞模式和非阻塞模式
- Linux fcntl函数设置阻塞与非阻塞
- window和linux下,设置socket为阻塞模式
- Linux UDP socket 设置为的非阻塞模式与阻塞模式区别
- Linux网络编程 — 设置connect函数连接超时
- linux 套接字函数send和recv函数(阻塞模式)
- 设置TCP阻塞模式下的发送和接收函数超时时间
- 怎样在阻塞模式下设置recv()函数的阻塞时间
- linux下设置vga显示模式方法
- LINUX网卡(设置千兆网卡速度及模式)
- 4.1.2 设置套接字的阻塞模式
- Linux 图形模式与文本模式 登陆设置
- IO模式设置,阻塞与非阻塞IO的比较
- VC中将SOCKET类的connect函数设置为非堵塞
- Linux/Unix命令之Ethtool (设置千兆网卡速度及模式)
- linux 的时区设置函数tzset()
- linux 客户端 Socket 非阻塞connect编程
- Linux开机启动模式的设置