c++网络编程简答示例一

一些可能会用到预备知识
代码下载地址
网络编程的过程呢, 我想用打电话来形容,但是这个电话可能有些不同

服务端编程

  1. 申请电话机 -> 申请 fd
int socket(int af,int type,int protocol);

// 建立一个socket用于连接
// af:address family,如AF_INET
// type:连接类型,通常是SOCK_STREAM或SOCK_DGRAM
// protocol:协议类型,通常是IPPROTO_TCP或IPPROTO_UDP,一般为0,意思是根据前两个参数来定
// 返回值:socket的编号,为-1表示失败
  1. 申请电话号码(这样别人才能打过来)-> 给 fd 绑定地址(ip 端口协议族等)
int bind(int socket,sockaddr * address,uint addrlen);

// 将一个地址和一个端口号绑定到一个socket连接上
// socket:之前创建的socket
// sockaddr:一个用来存放Ip地址和端口号的结构体
// addrlen:上述结构体的长度
// 返回值:为-1表示失败,若端口被占用,会从新绑定一个随机端口(仍返回失败)
// 地址绑定为0表示绑定本机所有IP
  1. 给电话配一个接线员(这就是资本的力量,这是必须的的一步)-> listener 来 listen
int listen(int socket,int maxconn);
// 将一个socket设置为监听状态,专门用来监听的socket叫做master socket
// maxconn:最大接收连接数
// 返回值:失败返回-1,成功返回0
  1. 接线员接电话-> accept
int accept(int socket,sockaddr * fromaddr,int * addrlen);

// 接收一个客户机的连接,返回一个socket,来自客户机的socket叫connected socket
// socket:用来监听的socket(master socket)
// fromaddr:客户机的地址信息
// addrlen:地址结构体的长度(输入输出参数)
// 返回值:返回一个新的socket,这个socket专门用来与此客户机通讯(connected socket

客户端编程

客户端编程就简化很多

  1. 申请电话机(电话机还是要有的)-> socket 同服务端编程
  2. 打电话(咱普通老百姓还是自己动手的好)-> connet
int connect(int socket,sockaddr * addr,int addrlen);【客户端】

// 使用当前socket连接一个地址(与服务器建立正式连接),此函数会触发服务器端的accept、select函数
// 注意:服务端接收的socket值和客户端socket值不一样
// addr:一般是服务器地址
  • 客户端没有申请固定的电话号码,所以 connet 的时候会分配一个
  • socket 为自己的电话机
  • addr 为服务端的号码
  • addrlen 为号码的长度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值