13.TCP编程

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

猜你喜欢

转载自blog.csdn.net/qq_33575901/article/details/80978221