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

兰州网站建设推广报价如何做网站平台

兰州网站建设推广报价,如何做网站平台,wordpress79元主题,日本签证那个网站做的好最近使用自研的http client时发现一个问题,对端在发送响应数据之后立即调用close关闭了连接,我这没有调用到响应的回调,而是调用到了连接关闭的回调。对端延迟一会再关闭连接就没问题,用curl去访问也是正常的。经过排查是没有正确…

最近使用自研的http client时发现一个问题,对端在发送响应数据之后立即调用close关闭了连接,我这没有调用到响应的回调,而是调用到了连接关闭的回调。对端延迟一会再关闭连接就没问题,用curl去访问也是正常的。经过排查是没有正确处理对端关闭导致的。

根据gnu文档以及其他搜索结果,如果没通过SO_LINGER选项改变close的默认行为,调用close关闭socket时,会关闭两个方向的数据流。读方向上,内核会将套接字设置为不可读,任何读操作都会返回异常;写方向上,内核会尝试将发送缓冲区的数据发送,之后发送FIN包结束连接,这个过程中,往套接字写入数据都会返回异常;若对端还发送数据过来,会返回一个RST报文。

epoll触发EPOLLIN事件时,表示对应的连接上有数据可以读出。tcp连接的远端主动关闭连接,也相当于可读事件,因为需要处理发送来的FIN包。

有问题的接收代码如下,问题在于recv返回0时,没有处理已经收到的数据就直接关闭socket。

int tcp_event::handle_read()
{octets& read_buf = _ses->get_read_buf();int ret_bytes = 0;while(true){if(read_buf.full()){_ses->onrecv();}int bytes_cnt = recv(_fd, read_buf.end(), read_buf.free_space(), 0);if(bytes_cnt == 0){_ses->close(CLOSE_REASON_ONRECV);return -1;}else if(bytes_cnt != -1){ret_bytes += bytes_cnt;read_buf.resize(read_buf.size() + bytes_cnt);}else{if(errno == EAGAIN || errno == EWOULDBLOCK) break;if(errno == EINTR) continue;_ses->close(CLOSE_REASON_ONRESET);return -1;}}_ses->onrecv();return ret_bytes;
}
http://www.mnyf.cn/news/41971.html

相关文章:

  • 义乌的论坛网站建设十大骗子教育培训机构
  • wordpress ajax json上海做seo的公司
  • 建网站的公司软件推广赚钱一个10元
  • pc下载网安卓优化大师下载安装
  • 国外网站设计网站seo兼职接单平台
  • 自己怎么做商城网站宁波seo外包推广渠道
  • 小说网站上的广告在哪做百度免费发布信息
  • 山海经异变小程序游戏入口seo常见的优化技术
  • 哪个网站可以做医学基础知识题如何搭建自己的网站
  • 网站开发如何引用函数如何去推广自己的产品
  • 做网站和做app哪个容易数据分析培训机构哪家好
  • dede企业网站带留言板后台查询最新推广赚钱的app
  • 建设通相似的网站百度地图网页版进入
  • wordpress主题一键生成郑州seo网站排名
  • 大连哪里有手机自适应网站建设维护太原关键词排名优化
  • 网站注册登录页面设计谷歌ads
  • 在柬埔寨做网站开发深圳网站搜索优化工具
  • 做付费推广是网站好还是单页面好关键词热度分析
  • 如何做网站搬运工赚钱智慧营销系统平台
  • 扬州网站建设myvodo免费推广网站视频
  • j2ee网站开发开题报告广告有限公司
  • 网站官网建设seo排名点击软件推荐
  • 广州企业网站设计方案西安关键词优化软件
  • 电子商务网站租用服务器费用如何推广公司
  • 哈尔滨企业自助建站正规拉新推广平台有哪些
  • 有没有哪个网站能够做简历安卓手机优化软件哪个好
  • 域名网站建设教程seo快速排名优化
  • 网站建设 昆明邦凯网络百度知道下载
  • 湖南现在有什么网站做农副产品公司网站怎么注册
  • 企业网站建设方案案例免费制作详情页的网站