您的位置:首页 > 运维架构 > Linux

linux将connect函数设置为非阻塞的模式

2020-08-03 15:34 405 查看

Linux中connect函数有两种情况:
1、如果是连接本机的IP地址,connect函数是不阻塞的,连接成功就返回0,connect连接失败就返回-1.
2、如果是连接外部设备,connect函数默认是阻塞的,将connect函数设为不阻塞有这样几种方法:

  1. 利用signal和定时器函数alarm可以将connect函数的阻塞中断掉,但是TCP连接没有中断,在后续的时间内,如果外部设备打开之后,不用调用connect函数自己就会进行连接,
  2. 可以参考一下博客。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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: