linux socket (4)

套接口的类型与协议

    域(domain)参数

    参数domain通过某种方式指定了所使用的协议,实际上domain指定了所使用的协议族,而不是某个特定的协议。所以在生成套接口之前,需要定义一下几个内容:

    1.所使用的协议族,例如PF_INET表明使用的是InternetIP协议族。

    2.所使用协议族中的某个特定的协议,例如IPPROTO_UDP表示的是UDP协议。

    3.所使用的地址族,例如AF_INET表明使用的是特定协议中的InternetIP地址。

但是后来经验说明,任何一个协议族都只有一种地址格式,所以在编程中意味着既可以使用PF_INET也可以使用AF_INET。

    socket函数
   
#include <sys/types.h>  
#include <sys/socks.h>  
 
int socket(int domain , int type , int protocol); 
#include <sys/types.h>
#include <sys/socks.h>

int socket(int domain , int type , int protocol);    

    三个参数分别是协议族,套接口类型,协议族中某个协议。

    type选择通常是一下几个值:SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET等等。

   

    SOCK_STREAM
 想在套接口上实现I/O流时,就可以使用SOCKTREAM套接口选项,流的概念与UNIX中管道很相近。一个流套接口不会保**何消息边界,它只是简单的向接收程序返回它拥有的数据。流套接口具有很好的有序性,可以确保接受程序完全按照数据发送的顺序进行接收。由此看书SOCK_STREAM套接口是一个可靠的传输手段。
    SOCK_DGRAM
 当不需要绝对有序性和可靠性的时候,可以考虑选用SOCK_DGRAM,并且不需要建立连接。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值