这涉及到一个很重要的函数:int socket(int domain,int type,int protocol);
domain:套接字中使用的协议族
type:套接字中数据传输类型;
protocol:计算机通信使用的协议信息;
协议族(domain):简单讲只需要用到PF_INET(IPV4互联网协议簇),PF_INET6(IPV6协议簇);其他协议并不常用或尚未普及;
套接字类型:指的是套接字的传输方式
主要分为流式套接字(也称面向连接的套接字)(SOCK_STREAM)和数据报套接字(也称面向消息的套接字)(SOCK_DGRAM),也称TCP套接字,因为它是使用TCP/TP实现字节流的传输,而这也决定了它的特性
流式套接字特性:可靠的 ,按序传递的,基于字节的面向连接的数据传输方式的套接字,同时也不存在数据边界。
数据报套接字特性:不可靠的,无序的,以数据高传输为目的的套接字,采用UDP协议;
何为数据边界:一个简单的无数据边界例子:客户端可以给服务器发一个“Hellow World”;服务器可以调用recv方法一次获取“Hellow World”;也可以单个字符多次获取(区别于有数据边界);
协议的最终选择(最后一个参数填什么)
大部分情况下可以向第三个参数填0,除非:同一协议簇中存在多个数据传输方式相同的协议。