1、本地套接字&网络套接字的区别
- 通信对象:本地套接字是让单机中的进程进行通信;网络套接字是让网络中的进程进行通信;
- 通信方式:网络套接字是通过绑定ip和端口,而本地套接字是绑定套接字文件的路径名。
除了以上两点外,基本相同。
2、TCP 是否真的存在“粘包”
参考链接:TCP粘包问题分析和解决(全)
“粘包”是什么? 指发送方发送的若干包数据到接收方接收时粘成一包,在接收缓冲区,后一包数据的头紧接着前一包数据的尾。
之前查了一些博文和资料,发现有的人说存在,有的人说不存在。
说不存在的:TCP是流不是包所以不存在粘包问题,也没有所谓的粘包概念。
说存在的:发送方将多个间隔较小、数据量小的数据合并成一个大数据块,然后进行封包发送,接收端难以分辨边界。
UDP是不存在的,因为UDP支持的是一对多的模式,接收端的skbuff(套接字缓冲区)采用了链式结构来记录每一个到达的UDP包。在每个包中就有了消息头(消息来源地址、端口等信息),这样的话对于接收端来说,容易区分边界。
我认为是存在的。
粘包出现的原因:
1、接收方。接收方不及时接收缓冲