关于socket的疑问
2024-09-06 02:19:06
一直感觉一端发送数据,另一端接受数据很不可思议的事情,如果不能即时地读走会导致什么后果呢?
其实socket读出来的数据,你自己看着办,里面的数据是什么格式你自己去解析,用户可以基于TCP去实现你自己的协议【其实等价于客户基于IP协议去实现自己的传输层协议】,所以可以想想用户是怎么实现http协议的,http协议也是有一个头的,你会读出来一个头,头中会写着后面第几个字段是http协议头,然后第几个字段是数据,然后再第几个字段是option段等等等等,构筑在tcp之上的新的协议,并不是说直接就是数据了。
看一段http协议的处理流程就大致知道了嘛,比如nginx,nginx是通过readv去读取数据的(可以参考:ngx_http_wait_request_handler函数中调用recv,recv钩子中封装的是readv函数),可以看到整个协议处理的过程中,都是直接然后挨个字段去分析。所以字节流就是这样子啦。那么对于数据报呢?
如果发送端不断发送数据,然后接收端过了好久才去取,会咋样呢?
数据报协议
最新文章
- 一键配置本地yum源
- Winform 打印PDF顺序混乱,获取打印队列
- Restrict each user to a single session in window server 2008 R2 or 2012
- 应用程序如何找到DLL文件?
- 【QT】计时器制作
- DB天气app冲刺第九天
- JavaScript中的鼠标滚轮事件详解
- 安卓抓包https
- EasyARM-iMX283A的make menuconfig出现错误:Install ncurses(ncurses-devel) and try again。
- 关闭应用程序(主程序)(WPF)
- 自主移动机器人同时定位与地图创建(SLAM)方法概述
- XmlDocument 避免XXE
- java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
- console输出图案
- BBS项目部署
- addEventListener、onclick和jquery的bind()、click()
- GPS数据包格式解析
- JNDI Tomcat
- python gevent使用例子
- Verilog分频器的设计