1、TCP编程函数
int socket(int family,int type,int protocol):创建套接字,并返回一个套接字描述符
family:协议族 AF_INET(IPv4协议) AF_INET6(IPv6协议) AF-LOCAL(UINX域协议) AF_ROUTE(录由套接字) AF_KEY(密钥套接字)
type:套接字类型 SOCK_STREAM流式套接字 SOCK_DGRAM数据报套接字 SOCK_RAW原始套接字
protocol:0(原始套接字除外)
int bind(int sockfd,struct sockaddr *my_addr,int addrlen):将保存在相应地址结构中的地址信息与套接字绑定,主要用于服务器端
sockfd:套接字描述符 my_addr:绑定的地址 addrlen:地址长度
int listen(int sockfd,int backlog):将套接字设置成监听模式,准备接收客户端的连接请求
sockfd:套接字描述符 backlog:请求序列中允许请求的最大请求数,默认值为5
int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen):接收客户端的连接请求,建立好连接后,返回新的已连接套接字
sockfd:套接字描述符 addr:客户端地址 addrlen :地址长度
int connect(int sockfd,struct sockaddr *serv_addr,int addrlen):客户端向服务器的监听套接字发送连接请求
sockfd:套接字描述符 ser_addr:服务器地址 addrlen:地址长度
int send(int sockfd,const void *buf,int len,int flag):发送数据
sockfd:套接字描述符 buf:发送缓存区的地址 flag:一般为0
int recv(int sockfd,void *buf,int len,unsigned int flag):接收数据
sockfd:套接字描述符 buf:存放数据的缓存区 len:接收数据的长度 flag:一般为0
2、IP地址格式转换函数
int inet_addr(const char *strptr):将十进制点分形式地址转换为二进制形式
3、字节序转换函数
地址结构相关处理:sockaddr sockaddr_in
1)struct sockaddr
{
unsigned short sa_family;地址族
char sa_data[14];14字节的协议地址
}
2)struct sockaddr_in
{
short int sin_family;地址族
unsigned short int sin_port;端口号
struct in_addr sin_addr;IP地址
unsigned char sin_zero[8];填充0,以保持与struct sockaddr_in 同样大小
}
工具:UDP nc -l 端口号 -u:收发数据 nc IP port -u