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

深圳东门网红打卡地seo排名优化点击软件有哪些

深圳东门网红打卡地,seo排名优化点击软件有哪些,幼儿园校园文化设计公司,企业网站建设常见问题在connect连接中,若socket以非阻塞的方式进行连接,则系统内设置的TCP三次握手超时时间为0,所以它不会等待TCP三次握手完成,直接返回,错误为EINPROGRESS。   所以,我们可以通过判断connect时返回的错误码是…

  在connect连接中,若socket以非阻塞的方式进行连接,则系统内设置的TCP三次握手超时时间为0,所以它不会等待TCP三次握手完成,直接返回,错误为EINPROGRESS。
  所以,我们可以通过判断connect时返回的错误码是不是EINPROGRESS来实现非阻塞的connect,如果当前是EINPROGRESS并且socket可写,则说明链路建立成功。此时调用getsockopt来清除文件描述符上的错误信息,接下来如果没有错误信息则链路成功建立。
B站一位UP主的讲解

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#include <time.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <string.h>#define BUFFER_SIZE 1023int setnonblocking(int fd){  //对一个文件描述符设置非阻塞int old_option = fcntl(fd, F_GETFL); //old_option表示fd的旧文件属性int new_option = old_option | O_NONBLOCK; //在old_option上追加非阻塞属性fcntl(fd, F_SETFL, new_option); //给fd设置新属性return old_option; //返回旧属性
}int unblock_connect(const char* ip, int port, int time){int ret = 0;struct sockaddr_in address;bzero(&address, sizeof(address));address.sin_family = AF_INET;inet_pton(AF_INET, ip, &address.sin_addr);//将点分十进制转化为网络字节序address.sin_port = htons(port);//将主机字节序转换为网络字节序int sockfd = socket(PF_INET, SOCK_STREAM, 0);int fdopt = setnonblocking(sockfd);ret = connect(sockfd, (struct sockaddr*)&address, sizeof(address));if(ret == 0){//如果连接成功,就将旧状态设置回去,(回复sockfd属性,并立即返回)printf("connect with server immediately!\n");fcntl(sockfd, F_SETFL, fdopt);//重置sockfd属性return sockfd;}else if(errno != EINPROGRESS){ //如果连接没有立即建立,那么只有当errno时EINPROGRESS时才表示连接还在进行//否则出错返回printf("unblock connect not support!\n");return -1;}fd_set readfds;fd_set writefds;struct timeval timeout;FD_ZERO(&readfds);  //将readfds的文件描述符集合清空FD_SET(sockfd, &writefds); //将sockfd放入writefds的文件描述符集合中timeout.tv_sec = time;timeout.tv_usec = 0;ret = select(sockfd + 1, NULL, &writefds, NULL, &timeout);//监听所有文件描述符中的可读事件,返回就绪文件的文件描述符if(ret <= 0){/*select 超时或者出错,立即返回*/printf("connection time out\n");close(sockfd);return -1;}if(!FD_ISSET(sockfd, &writefds)){//检查sockfd是否在writefds的集合中printf("no events on sockfd found\n");close(sockfd);return -1;}int error = 0;socklen_t length = sizeof(error);/*调用getsockopt来获取并清除sockfd上的错误*/if(getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, &length) < 0){printf("get socket option failed\n");close(sockfd);return -1;}/*错误号不为0表示连接出错*/if(error != 0){printf("connection failed after select with the error: %d \n", error);close(sockfd);return -1;}/*连接成功*/printf("connection ready after select with the socket: %d \n", sockfd);fcntl(sockfd, F_SETFL, fdopt);return sockfd;
}int main(int argc, char* argv[]){if(argc <= 2){printf("usag: %s ip_address port_number\n", basename(argv[0]));return 1;}const char* ip = argv[1];int port = atoi(argv[2]);int fd = unblock_connect(ip, port, 0);if(fd < 0 ) return 1;close(fd);return 0;
}
http://www.hkea.cn/news/791519/

相关文章:

  • 广州企业网站制作怎么做营销推广
  • 网站建设服务器在香港郑州网站建设专业乐云seo
  • 河北建设工程交易信息网海口关键词优化报价
  • 全国网站建设公司有多少家微信朋友圈广告投放收费标准
  • 免费做网站公司黑帽seo排名技术
  • apk连接wordpress上海seo
  • 企业建网站租用服务器好还是买一个好石家庄网站关键词推广
  • wordpress文件解析外贸网站优化
  • 建设工程竣工备案网站百度保障中心人工电话
  • 韶关城乡建设部网站首页营销型网站建设策划书
  • 建设银行手机银行下载官方网站谷歌浏览器网页版入口在哪里
  • 网站建设 好域名注册信息
  • 公众号微网站建设认证哪个推广网站好
  • 爬取1024上传到wordpress蔡甸seo排名公司
  • 流感吃什么药更好seo的方法
  • 营销型网站建设市场seo黑帽技术有哪些
  • 扬中做网站的公司seo虚拟外链
  • 永川集团网站建设免费网站seo诊断
  • 国外 上海网站建设网络营销推广方式案例
  • 24手表网站网络技术推广服务
  • 鞍山网站制作推广游戏推广员判几年
  • 360如何做网站优化网页设计制作软件
  • 金华网站建设电话电商运营主要负责什么
  • 百度的官方网站游戏推广工作好做吗
  • 著名的深圳网站建设网页快照
  • 政务网站建设要求快速排名软件哪个好
  • 自己网站怎么做优化色盲和色弱的区别
  • 苏州建网站公司seo网络推广培训班
  • 福清市建设局网站石家庄学院
  • 找考卷做要去哪个网站中国国家培训网官网查询