socket缓存的研究
来源:互联网 发布:js设置div display 编辑:程序博客网 时间:2024/05/24 02:31
工作期间遇到过socket缓存相关的一些问题,有做相关的测试,也有一些比较浅显的体会,今天突然看到下面这篇帖子,是基于windows的socket buffer的,看了下觉得自己当时的理解有点偏,也不确定这里说的是否完全正确,赶紧收藏了,以提醒自己有时间了集中研究一下。
将持续更新!
以下转载自【http://www.cnblogs.com/dawen/archive/2011/05/18/2050330.html】
关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的;我打个很简单的比方,如果你调用socket send函数时;
如果是阻塞模式下:
send先比较待发送数据的长度len和套接字s的发送缓冲的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;如果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的数据,如果是就等待协议把数据发送完,如果协议还没有开始发送s的发送缓冲中的数据或者s的发送缓冲中没有数据,那么 send就比较s的发送缓冲区的剩余空间和len,如果len大于剩余空间大小,send就一直等待协议把s的发送缓冲中的数据发送完,如果len小于剩余空间大小send就仅仅把buf中的数据copy到剩余空间里
如果是非阻塞模式下:
在调用socket send函数时,如果能写到socket缓冲区时,就写数据并返回实际写的字节数目,当然这个返回的实际值可能比你所要写的数据长度要小些(On nonblocking stream oriented sockets, the number of bytes written can be between 1 and the requested length, depending on buffer availability on both the client and server computers),如果不可写的话,就直接返回SOCKET_ERROR了,所以没有等待的过程
- socket缓存的研究
- 深度缓存(Z缓存)的研究
- Mysql查询缓存的研究
- 缓存研究
- socket研究
- socket研究
- web开发中的缓存问题的研究
- web开发中的缓存问题的研究
- web开发中缓存问题的研究
- web开发中的缓存问题的研究
- J2EEweb开发中的缓存问题的研究
- ehcache作为分布式缓存的研究
- ehcache作为分布式缓存的研究
- 关于缓存的初级研究(一)
- 客户端HTTP协议缓存的研究
- 对一个奇怪SOCKET问题的研究
- 关于socket的一些初步研究
- 关于socket的一些初步研究
- 【案例分析】Linux下如何查看端口占用情况
- opengl编程指南 第七版 源码有bug Page35 lines.c 红宝书
- 插入排序之算法研究
- 【android】Application 使用分析
- Neo4j数据库简介
- socket缓存的研究
- POJ_3468_A Simple Problem_线段树
- 使用dr.memory在win32环境下调试 cocos2dx 项目的内存异常
- Objective-c下具有下载功能的NSURLCache类CustomURLCache
- 今天开通了博客
- 经典算法归并排序的分析及PHP实现
- Linux,IP归属地查询(nali)
- Android ,在争议中逃离 Linux 内核的 GPL 约束
- 集成 admob Banner广告出错之一NSInvalidArgumentException