网络编程(一)
socket函数声明
1  | 
  | 
协议族(Protocol Family)
socket函数的第一个参数
| 名称 | 协议族 | 
|---|---|
| PF_INET | IPv4互联网协议族 | 
| PF_INET6 | IPv6互联网协议族 | 
| PF_LOCAL | 本地通信的UNIX协议族 | 
| PF_PACKET | 底层套接字的协议族 | 
| PF_IPX | IPX Novell协议族 | 
套接字类型(Type)
socket函数的第二个参数
类型1:面向连接的套接字(SOCK_STREAM)
特点:
- 传输过程中数据不会消失。
 - 按序传输数据。
 - 传输的数据不存在数据边界。
 
类型2:面向消息的套接字(SOCK_DGRAM)
特点:
- 强调快速传输而非传输顺序。
 - 传输的数据可能丢失也可能损毁。
 - 传输的数据有数据边界。
 - 限制每次传输的数据大小。
 
协议的最终选择
大多数情况下前两个参数即可创建所需的套接字,所以第三个参数可以传0。但当遇数据传输方式相同,但协议不同的情况就需要通过第三个参数制定具体协议信息。
IPv4协议族中面向连接的套接字(TCP套接字):
1  | int tcp_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);  | 
IPv4协议族中面向消息的套接字(UDP套接字):
1  | int udp_socket = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);  | 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 sudo_Yiii博客!






