SOCK_STREAM(流式套接字)
- 面向连接的套接字
有连接套接字非常可靠,万无一失,但是传输效率低,耗费资源多。 - SOCK_STREAM 是一种可靠的、双向的通信数据流,数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送。
- 数据在传输过程中不会消失;
- 数据是按照顺序传输的;
- 数据的发送和接收不是同步的(有的教程也称“不存在数据边界”)。
SOCK_DGRAM(数据报格式套接字)
- 无连接的套接字
尽最大努力交付原则 - 数据报套接字是一种不可靠的、不按顺序传递的、以追求速度为目的的套接字。
- SOCK_DGRAM 没有想象中的糟糕,不会频繁的丢失数据,数据错误只是小概率事件。
- 强调快速传输而非传输顺序;
- 传输的数据可能丢失也可能损毁;
- 限制每次传输的数据大小;
- 数据的发送和接收是同步的(有的教程也称“存在数据边界”)。