网络通信2:TCP的函数

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值