1.套接字描述符
套接字是网络通信端点的抽象,正如使用文件描述符访问文件,应用程序用套接字描述符访问套接字。套接字中储存着各种信息,如:通信特性,套接字类型,协议等。
套接字函数原型
#include<sys/socket.h>
int socket(int domain,int type,int protocol);
//返回值:成功返回文件(套接字)描述符,失败,返回-1
参数domain
AF_INET IPv4因特网域
AF_INET6 IPv6因特网域
AF_UNIX UNIX域
AF_UNSPEC 未指定
参数 type
SOCK_DGRAM 固定长度的,无连接的,不可靠的报文传输
SOCK_RAW IP协议的数据报接口
SOCK_SEQPACKET 固定长度的,有连接的,有序的,可靠的报文传输
SOCK_STREAM 有序的,可靠的,双向的,面向链接的字节流
参数protocol
IPPROTO_IP IPv4网际协议
IPPROTO_IPV6 IPv6网际协议
IPPROTO_ICMP 因特网控制报文协议
IPPROTO_RAW 原始IP数据包协议
IPPROTO_TCP 传输控制协议
IPPROTO_UDP 用户数据报协议
2.TCP协议
TCP是有链接的,可靠的数据传输协议
服务器 客户端