socket套接字TCP API
2020-12-13 05:47
标签:socket tcp 源代码 网络 服务器
socket套接字TCP API,搜素材,soscw.com socket套接字TCP API 标签:socket tcp 源代码 网络 服务器 原文地址:http://blog.csdn.net/caozhk/article/details/38330997socket套接字TCP API
socket概念
套接字地址结构
sockaddr_in
,位于netinet/in.h
头文件中,定义如下。
struct in_addr{
in_addr_t s_addr;
};
struct sockaddr_in{
uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
char sin_zero(0);
};
in_addr_t
in_port_t
位于netinet/in.h
in_addr_t
一般定义为uint32_t
,in_port_t
一般定义为uint16_t
sa_family_t
位于sys/socket.h
uint8_t
等位于sys/types.h
中sin_addr
sin_port
即为以网络字节序存储的32位ip地址与端口号sockaddr
,一般进行强制类型转换即可。socket基本TCP API
sys/socket.h
中
socket函数
int socket(int family, int type, int protocal);
AF_INET``AF_INET6
,分别表示IPv4/6协议。SOCK_STREAM
SOCK_DGRAM
SOCK_RAW
,分别表示字节流(TCP),数据报(UDP),原始套接字。IPPROTO_TCP‘
IPPROTO_UDP`通常设置为0也可。connect函数
int connect(int sockfd, const struct sockaddr *servaddr, int addrlen);
bind函数
int bind(int sockfd, const struct sockadddr *myaddr, int addrlen);
listen函数
int listen(int sockfd, int backlog);
accept函数
int accept(int sockfd, struct sockaddr *cliaddr, int *addrlen)
close函数
int close(int sockfd);
传送数据
int recv(int sockfd, void *buf, size_t len, int flags);
int send(int sockfd, const void *buf, size_t len, int flags);
TCP通信客户端与服务器端
客户端流程
服务器端流程
源代码如下:
#include
#include
上一篇:MDI窗体应用程序
下一篇:python格式化输出