boost::asio提供了网络库,封装了网络操作的很多细节,因此,很容易可以构建一个简单的客户服务端的通信架构,本文将说明如何编写实现一个简单的客户服务端。
工具/原料
boost
方法/步骤
1
首先实现处理客户端会话的函数,其入参是一个共享智能指针的tcp::socket
2
接着实现服务端,创建监听的套接字,然后使用accept等待客户端的连接,如果有客户端连接,那么启动线程,然后执行上一个步骤实现的客户端会话函数
3
实现客户端连接的回调函数,该函数判断是否连接成功,如果连接成功,那么可以与服务端进行通信
4
实现客户端,创建客户端连接的套接字,然后执行async_connect进行异步连接
5
通过线程的方式启动客户端和服务端
6
接着记得要调用join等待服务线程和客户端线程的退出,防止资源泄露
7
最后启动运行,其输出的信息如下所示,说明客户端连接服务端成功
注意事项
1
喜欢经验欢迎点赞投票!