套接字描述符
一、 socket函数:创建 一个套接字
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
//返回值:若成功,返回套接字描述符;若出错,返回 -1
参数说明:
- domain:确定通信的特性,各个域都有自己表示地址的格式,而表示各个域的常数都以 AF_ 开头,意指地址族
- type:确定套接字的类型,进一步确定通信特征
- protocol:通常是 0 ,表示为给定的域和套接字类型选择默认协议 。当对同一域和套接字类型支持多个协议时,使用protocol选择一个特定协议
在AF_INET通信域中,套接字类型SOCK_STREAM的默认协议是传输控制协议(TCP);在AF_INET通信域中,套接字类型SOCK_DGRAM的默认协议是UDP;SOCK_RAW套接字提供一个数据报接口,用于直接访问下面的网络层(即因特网域中的P层);流控制传输协议 (SCTP) 提供了因特网域上的顺序数据包服务。(SOCK_SEQPACKET)
二、close函数:关闭对文件或套接字的访问
三、套接字通信是双向的 ,可以采用shutdown函数来禁止一个套接字的I/O
#include <sys/socket.h>
int shutdown(int sockfd, int how);
//返回值:若成功,返回 0;若出错,返回 -1
如果how是SHUT_RD(关闭读端),那么无法从套接字读取数据;如果how是SHUT_WR(关闭写端),那么无法使用套接字发送数据;如果how是SHUT_RDWR,则既无法读取数据,又无法发送数据.
在学习中进步,如有错误,请多多批评指正