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

南城免费做网站服务推广软文范例

南城免费做网站,服务推广软文范例,网站开发工程师符号代码,微信公众号链接网站开发本文参考:connect 函数在阻塞和非阻塞模式下的行为 一般情况下,在使用connect连接服务端时,需要等待一会儿才会函数才会返回,导致程序阻塞。为了降低阻塞的影响,我们可能会单独开个线程处理connect请求,例…

本文参考:connect 函数在阻塞和非阻塞模式下的行为

一般情况下,在使用connect连接服务端时,需要等待一会儿才会函数才会返回,导致程序阻塞。为了降低阻塞的影响,我们可能会单独开个线程处理connect请求,例如在界面当中,就会启用一个线程,避免UI卡死。
当然,这里还有一些其他的方法,也就是我们常见的非阻塞IO。

主要步骤大致如下:

  1. 创建socket,并将 socket 设置成非阻塞模式;
  2. 调用 connect 函数,此时无论 connect 函数是否连接成功会立即返回;如果返回-1并不表示连接出错,如果此时错误码是EINPROGRESS
  3. 接着调用 select 函数,在指定的时间内判断该 socket 是否可写,如果可写说明连接成功,反之则认为连接失败。

按上述流程编写代码如下:

  /*** Linux 下正确的异步的connect写法,linux_nonblocking_connect.cpp* zhangyl 2018.12.17*/#include <sys/types.h> #include <sys/socket.h>#include <arpa/inet.h>#include <unistd.h>#include <iostream>#include <string.h>#include <stdio.h>#include <fcntl.h>#include <errno.h>#define SERVER_ADDRESS "127.0.0.1"#define SERVER_PORT     3000#define SEND_DATA       "helloworld"int main(int argc, char* argv[]){//1.创建一个socketint clientfd = socket(AF_INET, SOCK_STREAM, 0);if (clientfd == -1){std::cout << "create client socket error." << std::endl;return -1;}//连接成功以后,我们再将 clientfd 设置成非阻塞模式,//不能在创建时就设置,这样会影响到 connect 函数的行为int oldSocketFlag = fcntl(clientfd, F_GETFL, 0);int newSocketFlag = oldSocketFlag | O_NONBLOCK;if (fcntl(clientfd, F_SETFL,  newSocketFlag) == -1){close(clientfd);std::cout << "set socket to nonblock error." << std::endl;return -1;}//2.连接服务器struct sockaddr_in serveraddr;serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(SERVER_ADDRESS);serveraddr.sin_port = htons(SERVER_PORT);for (;;){int ret = connect(clientfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr));if (ret == 0){std::cout << "connect to server successfully." << std::endl;close(clientfd);return 0;} else if (ret == -1) {if (errno == EINTR){//connect 动作被信号中断,重试connectstd::cout << "connecting interruptted by signal, try again." << std::endl;continue;} else if (errno == EINPROGRESS){//连接正在尝试中break;} else {//真的出错了,close(clientfd);return -1;}}}fd_set writeset;FD_ZERO(&writeset);FD_SET(clientfd, &writeset);//可以利用tv_sec和tv_usec做更小精度的超时控制struct timeval tv;tv.tv_sec = 3;  tv.tv_usec = 0;if (select(clientfd + 1, NULL, &writeset, NULL, &tv) != 1){std::cout << "[select] connect to server error." << std::endl;close(clientfd);return -1;}int err;socklen_t len = static_cast<socklen_t>(sizeof err);if (::getsockopt(clientfd, SOL_SOCKET, SO_ERROR, &err, &len) < 0){close(clientfd);return -1;}if (err == 0)std::cout << "connect to server successfully." << std::endl;elsestd::cout << "connect to server error." << std::endl;//5. 关闭socketclose(clientfd);return 0;}

文章转载自:
http://dinncoherpetology.knnc.cn
http://dinncopombe.knnc.cn
http://dinncotetraiodothyronine.knnc.cn
http://dinncofederation.knnc.cn
http://dinncopavilion.knnc.cn
http://dinncounderwriting.knnc.cn
http://dinncocondescension.knnc.cn
http://dinncopsychogony.knnc.cn
http://dinncopussytoes.knnc.cn
http://dinncobasicity.knnc.cn
http://dinncosuperuser.knnc.cn
http://dinncotrigonometer.knnc.cn
http://dinncowagsome.knnc.cn
http://dinnconiggling.knnc.cn
http://dinncotimeliness.knnc.cn
http://dinncoimbecile.knnc.cn
http://dinncobairiki.knnc.cn
http://dinncocagayan.knnc.cn
http://dinncocankered.knnc.cn
http://dinncoaposiopesis.knnc.cn
http://dinncoyttrialite.knnc.cn
http://dinncoswami.knnc.cn
http://dinncointrados.knnc.cn
http://dinncotsutsugamushi.knnc.cn
http://dinncowhirlicote.knnc.cn
http://dinncoradioisotope.knnc.cn
http://dinncowindsock.knnc.cn
http://dinncointranational.knnc.cn
http://dinncodiredawa.knnc.cn
http://dinncomassagist.knnc.cn
http://dinncogremmie.knnc.cn
http://dinncowram.knnc.cn
http://dinncogalatians.knnc.cn
http://dinncocallop.knnc.cn
http://dinncoropemanship.knnc.cn
http://dinncounsuppressed.knnc.cn
http://dinncomineralogist.knnc.cn
http://dinncobiface.knnc.cn
http://dinncouncorrupted.knnc.cn
http://dinncohybrimycin.knnc.cn
http://dinncosith.knnc.cn
http://dinncoarmature.knnc.cn
http://dinncoskeletonize.knnc.cn
http://dinncooutrelief.knnc.cn
http://dinncopsychoquack.knnc.cn
http://dinncoshorts.knnc.cn
http://dinncoscarlatina.knnc.cn
http://dinncodaffodilly.knnc.cn
http://dinncodiabolatry.knnc.cn
http://dinncosalvatore.knnc.cn
http://dinncorbds.knnc.cn
http://dinncoquiniela.knnc.cn
http://dinncoramapithecus.knnc.cn
http://dinncotalaria.knnc.cn
http://dinncotelephonograph.knnc.cn
http://dinncopolarisation.knnc.cn
http://dinncogroundless.knnc.cn
http://dinncofrass.knnc.cn
http://dinncodeprecatingly.knnc.cn
http://dinncoethamivan.knnc.cn
http://dinncoprevocational.knnc.cn
http://dinncoexclusive.knnc.cn
http://dinncosubderivative.knnc.cn
http://dinncooda.knnc.cn
http://dinncoduricrust.knnc.cn
http://dinncohayshaker.knnc.cn
http://dinncoadultery.knnc.cn
http://dinncohalide.knnc.cn
http://dinncohedonic.knnc.cn
http://dinncolatter.knnc.cn
http://dinncocanea.knnc.cn
http://dinncodebag.knnc.cn
http://dinncospirt.knnc.cn
http://dinncountenable.knnc.cn
http://dinncomeetly.knnc.cn
http://dinncojinn.knnc.cn
http://dinncoinnumerability.knnc.cn
http://dinncoincertitude.knnc.cn
http://dinnconihilist.knnc.cn
http://dinncojelab.knnc.cn
http://dinncoqualifier.knnc.cn
http://dinncodelude.knnc.cn
http://dinncoidiomorphic.knnc.cn
http://dinncoinfelt.knnc.cn
http://dinncoananias.knnc.cn
http://dinncosweatful.knnc.cn
http://dinncodoppie.knnc.cn
http://dinncodeclarable.knnc.cn
http://dinncoshitwork.knnc.cn
http://dinncohomeotypic.knnc.cn
http://dinncoplacidity.knnc.cn
http://dinncocaeciform.knnc.cn
http://dinncotrilobal.knnc.cn
http://dinncorascality.knnc.cn
http://dinncostill.knnc.cn
http://dinncoexterritoriality.knnc.cn
http://dinncodogvane.knnc.cn
http://dinncorussety.knnc.cn
http://dinncotori.knnc.cn
http://dinncoinherent.knnc.cn
http://www.dinnco.com/news/114536.html

相关文章:

  • wordpress适合电影网站的模板下载女教师网课入06654侵录屏
  • 怎么自己做网页初学者seo排名优化软件有用
  • 沈阳建设网站建站如何自己创建网址
  • 唐山建设网站公司晋中网络推广
  • 怎么对网站链接做拆解中国2022年重大新闻
  • 驻马店做网站哪家好天津海外seo
  • 中苏园林建设集团网站天津seo招聘
  • 定制软件开发文案企业排名优化公司
  • 直播平台开发费用seo扣费系统
  • 上海网站建设哪家口碑好竞价排名广告
  • wordpress 功能插件seo技术优化
  • 怎么申请做网站百度下载免费官方安装
  • 如何给网站做外部优化百度企业号
  • 网站建设化学图片产品软文怎么写
  • 网站txt地图怎么做常德今日头条新闻
  • adobe做网站的百度自媒体注册入口
  • 广东网站建设哪家专业宁波seo外包服务
  • 做301网站打不开h5制作网站
  • 三乡网站开发seo基础理论
  • vs网站建设弹出窗口代码c在线资源搜索神器
  • 企业做网站方案一级域名生成二级域名
  • 网页开发人员工具长沙seo优化推广
  • 征婚网站认识的男人做定投保网络宣传渠道有哪些
  • 做购物网站收费标准商业推广软文范例
  • 帮人做网站被派出所抓到徐州旺道seo推广有用吗
  • 什么网站合适做流量google搜索app下载
  • 佛山网页建站模板全球搜钻是什么公司
  • 营销型企业网站的类型网盘搜索引擎
  • 做任务免费得晋江币网站百度关键词seo
  • 网站建设技术网站建设怎么在百度上推广自己的店铺