boost
文章平均质量分 72
hacker_lpy
学的通信工程专业,做过一年的java J2EE开发,现在从事C++开发,熟悉windows程序设计及linx后端服务器开发
展开
-
boost asio实现的TCP客户端(同时支持ssl)
因为要开发TCP客户端用于网络通信,用c++来写,要实现跨平台在window和linux都能用的话,自己去封装原始的套接字操作,要兼容linux和window两个平台,有点困难,工作量也不小,于是用了现有的别人封装好的库,boost的asio来封装一个TCP客户端。 boost 的asio是一个优秀的全异步跨平台的网络通信库,不过源码都是用模板来写的,看起来比较吃力。因为通信也有需要用到SSL的情况,所以设计的TcpClient兼容普通的套接字通信和ssl通信,可以作为初学者的借鉴,分为4个文件,代码如下:原创 2022-02-15 15:01:06 · 5424 阅读 · 1 评论 -
boost asio异步服务端实现步骤
(1)首先要初始化一个io_serviceboost::asio::io_service iosrv;(2)然后需要用一个iosrv的实例来初始化一个acceptorboost::asio::ip::tcp::acceptor acceptor(iosrv);(3)然后需要调用acceptor对象的open函数boost::system::error_code ec;acceptor.open(boost::asio::ip::tcp::v4(), ec);(4)然后调用acce原创 2021-02-26 23:31:54 · 2129 阅读 · 0 评论 -
使用websocket++/websocketpp库在服务重启后报[info] asio listen error: system:98 (地址已在使用)端口重用的问题
项目在使用websocket++这个开源库,作为websocket的服务器端来跟网页通信,虽然可以使用,但是有个问题就是在linux下的服务每次在关闭后马上启动,就会报端口重用的错误:[2020-07-22 11:10:13] [info] asio listen error: system:98 (地址已在使用)如果把服务停掉等待一分多钟后启动,就不会报这个错误了,说明端口已经被释放。如果监听的套接字设置套接字选项SO_REUSEADDR,就能解决,一般而言,作为服务器监听的套接字都必须设置这个套原创 2020-07-23 14:44:28 · 2789 阅读 · 3 评论