Socket
其实就是一个门面模式,它把复杂的
TCP/IP
协议族隐藏在
Socket
接口后面,对用户
来说,一组简单的接口就是全部,让
Socket
去组织数据,以符合指定的协议。所以,我们无需
深入理解
tcp/udp
协议,
socket
已经为我们封装好了,
我们只需要遵循
socket
的规定去编程,
写出的程序自然就是遵循
tcp/udp
标准的。
补充:也有人将
socket
说成
ip+port
,
ip
是用来标识互联网中的一台主机的位置,而
port
是
用来标识这台机器上的一个应用程序,
ip
地址是配置到网卡上的,而
port
是应用程序开启的,
ip
与
port
的绑定就标识了互联网中独一无二的一个应用程序,
而程序的
pid
是同一台机器上不
同进程或者线程的标识
二、套接字发展史及分类
套接字起源于
20
世纪
70
年代加利福尼亚大学伯克利分校版本的
Unix,
即人们所说的
BSD Unix
。
因此
,
有时人们也把套接字称为
“
伯克利套接字
”
或
“BSD
套接字
”
。一开始
,
套接字
被设计用在同
一台主机上多个应用程序之间的通讯。这也被称进程间通讯
,
或
IPC
。套接字有
两种(或者称为有两个种族)
,
分别是基于文件型的和基于网络型的。
基于文件类型的套接字家族
套接字家族的名字:
AF_UNIX