1、套接字地址结构:
ipv4套接字地址结构:struct sockaddr_in ,定义在<netinet/in.h>
ipv6套接字地址结构:struct sockaddr_in6,同样定义在<netinet/in.h>
通用套接字地址1结构:struct sockaddr,定义在<sys/socket.h>
ipv4和ipv6套接字地址分别用在定义他们时,而通用套接字用于套接字函数,需要强制类型转化。
2、字节操纵函数
<string.h>void bzero(void * dest,size_t nbytes),bzero把目标字符串中指定目的字节指为0.
<string.h>void void * memset(void * dest,int c,size_t len),memset把目标字符串中指定数目的字节指为C。
3、转换函数:
<apra、inet.h>,以下均使用ipv4。
|
1
|
int inet_aton(const char * strptr,struct in_addr * addrptr); |
将strptr所指的C字符传转换成一个32位的网络字节需二进制值,存放在addrptr。
char * inet_ntoa(struct in_addr inaddr);
将一个32位的网络字节需二进制ipv4地址转换成相应的点分十进制字符串
4、基本TCP套接字1函数。
|
1
2
3
4
5
6
7
8
9
|
<sys/socket.h>int socket(int family,int type,int protocal);int connect(int sockfd,const struct sockaddr* servaddr,socklen_t addrlen);int bind(int sockfd,int backlog);int accept(int sockfd,struct sockaddr* localaddr,socklen_t* addrlen);int getsockname(int sockfd,struct sockaddr * localaddr,socklen_t* addrlen);返回socket关联的本地协议地址。int getpeername(int sockfd,struct sockaddr* localaddr,socklen_t addrlen);返回socket关联的外地协议地址。 |
|
1
2
3
4
|
<unistd.h>int read(int handle,void * buf,int nbyte);int write(int handle,void *buf,int bbyte);int close(int sockfd); |