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

wap购物网站源码广告网站设计公司好吗

wap购物网站源码,广告网站设计公司好吗,淮安市哪里可以做网站,广告字体效果图在线制作目录 一、应用层与TCP之间的联系 二、 当通信双方中的一方如客户端主动断开连接时#xff0c;仅是在客户端的视角下连接已经断开#xff0c;在服务端的眼中#xff0c;连接依然存在#xff0c;为什么#xff1f;——触发EPOLLRDHUP事件#xff1a;对端关闭连接或停止写…目录 一、应用层与TCP之间的联系 二、 当通信双方中的一方如客户端主动断开连接时仅是在客户端的视角下连接已经断开在服务端的眼中连接依然存在为什么——触发EPOLLRDHUP事件对端关闭连接或停止写操作 三、EPOLLIN可读事件 和 EPOLLOUT可写事件 的触发时机什么时候设置读事件关心什么时候设置写事件关心 四、EPOLLPRI优先处理数据事件 —— 当TCP报文携带的是紧急数据时触发URG 1, 紧急指针有效 我们来回顾使用epoll的流程 1、首先创建监听套接字将其设置为读事件关心并挂载到epoll的红黑树中。监听套接字读取事件就绪的条件是TCP全连接队列不为空在LT模式下只要全连接队列中有数据就满足读时间就绪在ET模式下只有当全连接队列中有新连接到来时才会触发一次读时间就绪。 2、当触发监听套接字读时间就绪后使用epoll_wait从epoll模型的就绪队列中将就绪事件及其对应的套接字提取出来根据套接字类型的不同和就绪事件的不同进而执行不同的回调函数。对于listen套接字而言当读事件就绪后它需要调用accept从TCP全连接队列中获取新连接的文件描述符。并将其挂载到epoll中设置读事件关心。 3、当该连接接收到请求数据后进行业务处理——根据请求构建响应数据放入该连接的用户级缓冲区中并设置该连接的文件描述符为写事件关心等待写事件的就绪。当epoll_wait获取到该连接的写事件就绪后再去执行写事件对应的回调函数。当写入完成后需要关闭该连接的对写事件的关心。 4、当客户端主动关闭连接时服务端需要先将连接接收缓冲区中的请求数据处理完毕并且将数据处理的结果返回给客户端这样做是出于逻辑的完善具体情况看要看具体是怎样设计的。当服务端发现客户端已经主动断开连接后服务端也要断开连接并清除文件描述符和移除epoll中对该文件描述符的关心以及其他相关的资源。 在应用层中当调用close函数关闭套接字文件描述符时视为发起断开连接。 一、应用层与TCP之间的联系 接下来开始我们真正的问题讨论  二、 当通信双方中的一方如客户端主动断开连接时仅是在客户端的视角下连接已经断开在服务端的眼中连接依然存在为什么——触发EPOLLRDHUP事件对端关闭连接或停止写操作 套接字通信是全双工的这意味着服务端和客户端之间可以同时进行通信而要使得两者之间通信所传输的数据互不干扰这就要求要为通信提供两个缓冲区一个用来存储接收的数据一个用于存储需要发送的数据。TCP为每个连接提供了两个独立的缓冲区接收缓冲区和发送缓冲区。而客户端与服务端之间建立连接的实质就是通信双方是否能正常进行通信——即1、客户端是否能向服务端发送信息2、服务端能否接收到客户端所发送的信息并且能否能否向客户端发送信息3、客户端能否接收到服务端发送的信息。 以上过程实质上就是三次握手的验证过程进行三次握手的目的就是验证通信双方是否具备通信的能力即双方是否能够正常接收数据和发送数据。可见客户端与服务端之间连接的建立实质上就是两者发送缓冲区与接收缓冲区之间的联系。 当客户端主动调用close关闭连接时实际上仅仅是客户端的发送缓冲区到服务端的接收缓冲区这条路线被切断了。对服务端而言服务端的发送缓冲区到客户端的接收缓冲区之间的联系依旧存在。 所以当客户端主动关闭连接时我们需要及时调用read等函数将服务端接收缓冲区中的剩余数据读取至应用层并进行处理。数据处理完成后如果有需要可以继续发送给客户端。在数据清理完成后服务端需要清理与该连接相关的资源。 三、EPOLLIN可读事件 和 EPOLLOUT可写事件 的触发时机什么时候设置读事件关心什么时候设置写事件关心 epoll所要做的就是等待资源就绪。 对于一条连接而言在连接成功建立之初我们就应对其设置读事件关心。——因为通信中的一方始终需要接收另一方发送的信息继而要去对信息进行处理。这就需要我们调用read/recv等读取函数去读取接收缓冲区中的内容。但缓冲区中如果没有数据我们调用读取函数就会阻塞BLOCK模式连接关闭时返回0或者读取失败NONBLOCK模式错误码为EAGAIN 或 EWOULDBLOCK表示资源暂时不可用连接关闭时返回0)。 那么读就绪的条件就是在LT模式下接收缓冲区中有数据即为读就绪。在ET模式下接收缓冲区中接收到新数据即为读就绪。 类似的写事件的就绪在LT模式下发送缓冲区中有空间即为写就绪。在ET模式下发送缓冲区中有新空间即为写就绪。 但是我们并不能在连接成功建立之初对其设置写事件关心连接建立之初发送缓冲区中一定是有空间的因为此时我们并未将数据处理的结果写入到发送缓冲区中。如果此时设置了写事件关心那么写事件是常就绪的然而我们大多数的事件可能是在进行读取数据与业务处理并不一定需要发送数据。同时不必要的写事件常就绪还会造成epoll模型中红黑树和就绪队列资源的占用和不必要的资源浪费。 所以我们要在需要写数据的时候将设置关心写事件——即当应用层处理完读取上来的请求数据并生成响应数据需要发送给另一方时我们再将该连接描述符的写事件设置为关心。必要的在数据发送完毕后及时关闭对该连接的写事件关心。 四、EPOLLPRI优先处理数据事件 —— 当TCP报文携带的是紧急数据时触发URG 1, 紧急指针有效 当TCP报头中的保留位字段中的URG字段设置为1时发送应用进程就告诉发送方的TCP有紧急数据要传送——该报文数据中包含紧急数据于是发送方TCP就把紧急数据插入到本报文段数据的最前面而在紧急数据后面的数据仍是普通数据。这时URG需要搭配首部中的紧急指针字段配合使用。 当接收方的接收缓冲区根据TCP报头识别到该段报文的数据包含紧急数据时会通知与其相关的系统调用epoll会返回EPOLLPRI事件。说明有紧急数据到来需要优先处理。
http://www.hkea.cn/news/14526841/

相关文章:

  • 网站开发费用结算网站建设免费模板哪家好
  • 网站对位海口网
  • 做汽车英文网站空间破解网站
  • 做网站一定需要icp么新网站建设需要什么
  • 备案个人可以做视频网站书签制作过程
  • 山西电力建设三公司网站wordpress yii
  • 怎么做农产品垂直网站外贸型网站方案
  • 网站建设完整代码网站排名易下拉技巧
  • 建网站多少钱 优帮云湖南铁军工程建设有限公司官方网站
  • 兴宁网站建设设计建设银行网站不能登录不了
  • 温州做网站多少钱龙华网站建设方案案例
  • 做网站后台应该谁来做如何建设英文网站
  • 网站建设 东阿阿胶网站开发合同模板免费
  • iis配置网站只有网站才需要域名吗
  • 手机网站设计模板有什么网站可以做推广
  • 餐饮食材配送网站开发企划书济南网络电视台
  • 网站logo模板福州网络营销
  • 网站开发相关书籍自己如何做微信小程序
  • 创建网站代码信阳网站优化
  • 电子商务网站设计要求公司网站突然打不开
  • 关键词优化分析工具seo北京公司
  • 扁平式网站seo 内链合肥建设集团招聘信息网站
  • 做网站的空间费用要多少wordpress数据库e r图
  • 哈尔滨建设银行网站首页顺德网站优化
  • 免费网站自助建站系统建设商城类的网站要多少钱
  • 网站建设遵循的原则关于建设网站的经费请示
  • 服务好的高端网站建设企业中国域名网站排名
  • 微信手机网站建设wordpress网建公司模板
  • 软件开发培训学校哪的好系统优化方法
  • 洛阳数码大厦做网站的在几楼黄浦区网站建设