当前位置: 首页 > news >正文

免费网站建网页优化包括什么

免费网站建,网页优化包括什么,网站建设竞争对手分析,制作哪个网站好1、概述下面问题你会怎么回答异步connect大致流程是什么?2、回复1、创建socket2、设置socket非阻塞3、调用connect,并处理返回值4、调用io复用函数,检测socket可写5、在Linux环境,要调用getsockopt检测socket是否出错,若没有出错…

1、概述

下面问题你会怎么回答

异步connect大致流程是什么?

2、回复

1、创建socket

2、设置socket非阻塞

3、调用connect,并处理返回值

4、调用io复用函数,检测socket可写

5、在Linux环境,要调用getsockopt检测socket是否出错,若没有出错,则连接成功

原因:在linux环境即使连接没有成功,socket也有可能是可写的,所以要调用getsockopt检测下

示例代码

#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <errno.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <arpa/inet.h>#define SERVER_IP "192.168.202.224"
#define SERVER_PORT 8082
#define INVALID_HANDLE_VALUE (-1)int main()
{// 创建非阻塞socketint clientfd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0);if(clientfd == INVALID_HANDLE_VALUE){perror("clientfd creation failed");return -1;}// 发起非阻塞的connect,并处理返回值for(;;){struct sockaddr_in servAddr;servAddr.sin_family = AF_INET;servAddr.sin_addr.s_addr = inet_addr(SERVER_IP);servAddr.sin_port = htons(SERVER_PORT);int ret = connect(clientfd, (struct sockaddr*)&servAddr, sizeof(servAddr));if(ret == 0){printf("connect success\n");return 0;}else if(ret == -1){if(errno == EINTR){// 被系统信号打断printf("connect errno EINTR continue\n");continue;}else if(errno == EINPROGRESS || errno == EAGAIN || errno == EWOULDBLOCK){break;}else{printf("connect failed errno:%d\n", errno);return -1;}}}// 使用io复用函数,检测socket是否可写fd_set write_fds;FD_ZERO(&write_fds);FD_SET(clientfd, &write_fds);int max_fd = clientfd + 1;struct timeval tv;tv.tv_sec = 3;tv.tv_usec = 0;if(select(max_fd, NULL, &write_fds, NULL, &tv) != 1){printf("select failed errno:%d\n", errno);return -1;}// 检测socket上是否有错误int err;socklen_t len = sizeof(err);if(getsockopt(clientfd, SOL_SOCKET, SO_ERROR, &err, &len) < 0){close(clientfd);return -1;}if(err == 0){printf("connect success\n");}else{        printf("connect failed err:%d\n", err);}close(clientfd);return 0;
}


学习链接:https://github.com/0voice

http://www.dtcms.com/a/615273.html

相关文章:

  • 国外有哪些网站可以做电商网站建设教程简笔画
  • DINOv3 无监督训练自定义数据集预处理技术详解 (ImageNet 兼容格式)
  • 35网站建设网站建设服务好公司排名
  • 微商网站制作百度商家
  • LeetCode 分类刷题:2487. 从链表中移除节点
  • spring1
  • 注册网站地址中国建筑一局
  • 视频剪辑教程自学网站为什么用php做网站
  • 百度统计怎么添加网站设置方法
  • C++98 标准详解:C++的首次标准化
  • 哪家专门做特卖的网站阳谷网站建设电话
  • RFSOC配置QSPI+EMMC启动 petalinux记录
  • Win11右键菜单如何把“显示更多选项“中的内容改为默认展示出来
  • 网站一键提交网站开发培训训
  • 网站模板插件网站现在用h5做的吗
  • 免费微网站开发网站建设维护是啥意思
  • 温州网站建设公司有哪些房产信息网准确吗
  • 免费建公司网站的攻略乐陵seo网站优化
  • 网站推广需求刷单类网站开发
  • 中国建设银行邀约提额网站如何制作私人网站
  • 【Linux日新月异(五)】CentOS 7防火墙深度解析:firewalld全面指南
  • 广州建设工程质量安全网站东莞互联网
  • C语言编译程序的工作原理与优化技巧 | 探索C语言编译过程中的核心技术
  • AlphaSteer: Learning Refusal Steering with Principled Null-Space Constraint
  • [c++]赋值运算符重载
  • 正负反馈的判别
  • 怎么自己建一个网站最有效的恶意点击
  • 专业的高端企业网站一起看在线观看免费
  • 【Git】2025全图文详解安装教程
  • 松江手机网站开发南阳网站推广排名