## Socket编程 TCP粘包
---
### TCP粘包
- 粘包可能在服务端产生也可能在客户断产生,提交数据给tcp发送时,tcp并不立刻发送此段数据,而是等待一
小段时间,看看在等待期间是否还有要发送的数据,若有则会一次把这两段数据发送出去,造成粘包;
- 另一端在接收到数据后,放到缓冲区中,如果消息没有被及时从缓存区取走,下次在取数据的时候可能就会出现一次取出多个数据包
### 六大设计模式
- 开闭原则:一个软件实体如类、模块和函数应该对修改封闭,对扩展开放。
- 单一职责原则:一个类只做一件事,一个类应该只有一个引起它修改的原因。
- 里氏替换原则:子类应该可以完全替换父类。也就是说在使用继承时,只扩展新功能,而不要破坏父类原有的功能。
- 依赖倒置原则:细节应该依赖于抽象,抽象不应依赖于细节。把抽象层放在程序设计的高层,并保持稳定,程序的细节变化由低层的实