套接字类型与协议设置

一、套接字创建函数int socket()

int socket(int domain, int type, int protocol);
/*
    domain:套接字中使用的协议族信息(Protocol Family)。
    type:套接字数据传输类型信息。
    protocol:计算机间通信中使用的协议信息。
*/

二、协议族信息

        对应int socket()函数的domain参数。此协议族信息在头文件<sys/socket.h>中声明。

<sys/socket.h>声明的协议族信息表
名称协议族
PF_INETIPv4互联网协议族
PF_INET6IPv6互联网协议族
PF_LOCAL本地通信的UNIX协议族
PF_PACKET底层套接字的协议族
PF_IPXIPX Novell协议族

         套接字中实际采用的最终协议信息是通过socket()函数的第三个参数传递的,在指定的协议族范围内,通过第一个参数决定第三个参数。

三、套接字类型

        对应socket()函数第二个参数type。

套接字类型统计表
名称类型特点
SOCK_STREAMTCP套接字面向连接的套接字,可靠的、有序的,基于字节的数据传输方式的套接字
SOCK_DGRAMUDP套接字面向消息的套接字,不可靠的、无序的、以数据高速传输为目的的套接字

 

四、计算机间协议信息

        对应socket()函数第三个参数protocol。一般可默认填0,计算机会自动识别协议信息。

计算机间协议信息表
名称类型
IPPROTO_UDPUDP传输协议
IPPROTO_TCPTCP传输协议

         该参数由socket()函数前两个参数决定,满足参数PF_INET和参数SOCK_DGRAM的协议只有IPPROTO_UDP,这种套接字即为UDP通信套接字。

        满足参数PF_INET和参数SOCK_STREAM的协议只有IPPROTO_TCP,这种套接字即为TCP通信套接字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值