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

兰州网站建设推广报价黄冈黄页88网黄冈房产估价

兰州网站建设推广报价,黄冈黄页88网黄冈房产估价,哪个小说网站可以做封面,做个外贸的网站不懂英语咋做最近使用自研的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.dt0577.cn/news/50588.html

相关文章:

  • 电影网站设计说明书福州短视频seo机会
  • 网站建设如何给网址设置链接免费浏览网站推广
  • 广州市城市建设seo的工作内容主要包括
  • 做的最好的美女视频网站有哪些怎样进行seo
  • 专业的聊城做网站费用seo推广主要做什么
  • 成品网站灬1688网络推广搜索引擎
  • 专门做照片书的网站全网营销整合营销
  • 国内大的网站建设公司网站收录入口
  • html旅游网站制作代码湖北搜索引擎优化
  • wordpress主题UIGREAT游戏优化大师下载安装
  • wordpress缩略图清除惠州seo排名
  • 外贸行业网站建设公司排名百度竞价投放
  • 福州网站开发系列淘宝美工培训
  • 做淘宝有哪些货源网站品牌营销活动策划方案
  • 目前网站开发技术深圳seo顾问
  • 免费个人博客网站电商平台链接怎么弄
  • 坂田网站建设推广公司北京做网络优化的公司
  • 网站代理怎么做的百度指数数据来源
  • 做游戏网站的目地百度推广业务员电话
  • 潍坊做网站哪家公司最好网络推广网上营销
  • 深圳公司的网站设计谷歌安装器
  • 网站 建设方案114啦网址导航官网
  • 有做面食的网站吗专业做网站
  • 公司起名网站十大排名宣传推广网络推广
  • wordpress 用途昆明seo排名外包
  • 厦门网站建设公司怎么选sem是什么电镜
  • 网站开发技术 html品牌运营管理有限公司
  • 怎样做企业的网站建设百度seo和sem的区别
  • 网站建设方案ppt怎么做推广网络
  • 昆山高端网站建设机构中国联通和腾讯