套接口的类型与协议
域(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,并且不需要建立连接。

被折叠的 条评论
为什么被折叠?



