摘要:
进程和线程的异同点?线程之间如何进行通信?进程之间如何进行通信? 两个进程间的两个线程通信,相当于进程间通信:无名管道、有名管道、信号、信号量、消息队列、套接字、共享内存 一个进程中的两个线程间通信方式:互斥锁、条件变量condition_variable、信号量、读写锁shared_lock 互斥 阅读全文
摘要:
TCP三次握手/TCP建立连接的过程、TCP四次挥手/TCP关闭连接的过程 三次握手过程 举例:1听得到吗;2我听得到,你呢;3我也听到了 四次挥手过程 举例:1老师,要下课了;2好,我布置下作业;3说完了下课;4老师再见(学生=客户端,老师=服务端,下课的时候学生告诉老师要下课,同时说明了听不进去 阅读全文
摘要:
##为什么不是两次握手? 因为TCP是全双工通信,需要保证服务端和客服端都能发送和接收数据。两次握手无法保证服务端和客户端的接发功能都是ok的。 ##为什么不是四次握手? 四次握手会降低连接的速度和效率,因为三次足够确保双方的接发功能是否完好。 ##为什么不是三次挥手? 中间的两个部分为什么不能合成 阅读全文
摘要:
##TCP粘包问题 遇到粘包的情况:比如当发送两条消息时,比如发送ABC和DEF,但另一端接收到的却是ABCD,像这种一次性读取了两条数据的情况就叫做粘包(正常情况应该是一条条读取的)。 粘包的主要原因: 发送方每次写入数据 < 套接字(Socket)缓冲区大小; 接收方读取套接字(Socket)缓 阅读全文