1.Inet_addr()函数
函数作用:
十进制转换成二进制
函数原型:
int inet_addr(const char *strptr);
参数:
Strptr:要转换的IP地址字符串
返回值:
成功:32位二进制IP地址(网络字节序)
出错:-1
2.Inet_pton函数
函数原型:
int inet_pton(int family,
const char *Src,void *dst);
参数:
Family:AF_INET,IPV4协议; AF_INET6,IPV6协议;
Src:要转换的IP地址字符串;
Dst:存放转换后的地址的缓冲区
返回值:
成功:0;
出错:-1;
3.sock
函数原型:
int sock(int family,
int type,int proto);
参数:
Family:AF_INET,IPV4协议; AF_INET6,IPV6协议;
type:SOCK_STREAM:TCP
SOCK_DGRAM:UDP
SOCK_RAM:提供原始网络协议存取
protocol:传输协议编号,设为0
返回值:
成功:返回socket套接字描述符;
出错:-1
4.bind
函数作用:绑定IP地址
函数原型:
int bind(int sockfd,
struct sockaddr *myaddr,int addrlen);
参数:sockfd:套接字描述符; myaddr:sockaddr的地址长度
struct sockaddr
{
unsigned short sa_family; /*地址族*/
char sa_data[14]; /*14字节的协议地址,包含该socket的IP地址和端口号。*/
};
struct sockaddr_in
{
short int sa_family; /*地址族*/
unsigned short int sin_port; /*端口号*/
struct in_addr sin_addr; /*IP地址*/
unsigned char sin_zero[8]; /*填充0 以保持与struct sockaddr同样大小*/
};
返回值:
成功:0;
出错:-1;
5.connect
函数作用:建立socket链接,通常客户端链接服务器使用。
函数原型:
int connect(int sockfd,
struct sockaddr* ser_addr,int addrlen);
参数:ser_addr:表示要链接的服务器Ip地址
addrlen:struct sockaddr的长度
返回值:
成功:0;
出错:-1
6.listen
函数作用:侦听网络,等待链接
函数原型:
int listen(int sockfd,
int backlog);
参数:sockfd:套接字描述符;
backlog:允许接入的客户端数目
返回值:
成功:0;
出错:-1
7.accept
函数作用:接受socket网络链接,客户端链接,3次握手在这里
函数原型:
int accept(int sockfd,
struct sockaddr* ser_addr,int* addrlen);
参数:addr:链接成功,填充远端客户机的地址
addrlen:struct sockaddr的长度
返回值:
成功:返回新的socket套接字描述符;
出错:-1
8.send
函数作用:经过socket传送数据,向对方发送数据
函数原型:
int send(int sock_fd,
const void* msg,unsigned int flags);
参数:sock_fd:accept建立起来的socket链接描述符,连接远方的IP地址
msg:发送的数据
flags:设为0
返回值:
成功:返回实际传送出去的字节数;
出错:-1
9.recv
函数作用:经过socket接收数据
函数原型:
int recv(int sock_fd,
void* buf,int len,unsigned int flags);
参数:sock_fd:accept以后的socket套接字描述符
buf:存放地址
len:数据长度(接收数据的最大长度)
flags:设为0
返回值:
成功:返回成功接收的字节数;
出错:-1