socketAPI

1.创建套接字

#include <sys/types.h>
#include <sys/socket.h>
int sockfd = socket(int demain, int type, int protocal);

domain参数告诉系统使用哪个底族协议,IPV4为AF_INET,IPV6为AF_INET6。
type参数指定服务类型,主要有SOCK_STREAM(流服务),SOCK_UGRAM(数据报)
protocal一般设置为0,采用该族下的默认协议

2.命名套接字

int bind(int sockfd, const struct sockaddr *addr, socket_t len);

struct socketaddr_in
{
    sa_family_t      sin_family;//AF_INET
    u_int16_t        sin_potr;//端口号,用网络字节序表示
    struct in_addr   sin_addr;//IPv4地址结构体
};

struct in_addr
{
    u_int32_t   s_addr;//IPv4地址,用网络字节序表示
};

该函数给套接字描述符绑定一个地址,只用命名后才知道该如何连接它。服务器端要绑定地址,用于提供服务,客户端可以用它连接服务器,客户端调用connect时,系统自动分配socket地址。

3.监听套接字

int listen(int sockfd, int backlog);

创建监听队列以存放待处理的客户端连接。backlog是完成三次握手的连接socket队列的上限,典型值为5。处于半连接状态的socket的上限由内核参数定义。

4.接受连接

int connect_fd = int accept(int sockfd, struct sockaddr *addr, socket_t len);

accept从完成连接的队列中取socket,当accept成功返回时,返回的socket唯一的标识了被接收的这个连接,服务器通过读写这个connect_fd与客户端通信。

5.发起连接

int connect(int sockfd,const struct sockaddr* addr,socket_t len);

connect成功时返回0,一旦返回成功,socket就唯一的标识了这个连接,客户端通过读写这个socket与服务器端通信。

6.关闭连接

int close(int sockfd);

close系统调用并非立即关闭一个连接,而是将sockfd的引用计数-1。只有当引用计数减为0时,才真正关闭连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值