1:什么是套接字?
应用程序与网络协议栈之间进行数据收发的编程接口(API)
2.如何理解?
应用程序需要套接字才能接入网络,与其他计算机上的程序进行通信(插座---->电器需要插入插座才能通电)
3.构成
ip(标识主机)+端口号(标识特定进程或服务)
4.分类
1)流式套接字(勤奋努力型):
基于TCP协议;
面向连接,可靠,有序,无差错的字节流服务;
通信前三次握手,通信后四次挥手;
适用于需要保证数据完整性和顺序的应用(网页浏览,文件传输,电子邮件等)
2)数据报套接字(摆烂仔型):
---->(画大饼:你的未来一片光明,内心os:但这光是烛光还是太阳光就不知道了)
基于UDP协议;
无连接,不可靠,尽最大努力交付的数据报服务;
数据以独立报文形式发送,不保证顺序和到达;
适用于对实时性要求高,能接受少量丢包的应用(视频/语音通话,直播,在线游戏等)
3)原始套接字(基础但也不基础型):
允许直接访问底层网络协议;
通常用于开发新的网络协议或者进行网络诊断(ping);
使用复杂,且通常需要管理员权限---->(访问基础权限就不基础)
5.工作流程
以TCP服务器端客户端为例: