当前位置 : 主页 > 网络推广 > seo >

套接字 – 如何检索boost asio套接字文件描述符

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在使用boost asio来开发一个侦听客户端连接的tcp服务器进程.期望客户端发送部分数据包.服务器进程在收到来自客户端的整个数据包(标头,数据和页脚)之前无法处理数据包. 为了处理
我正在使用boost asio来开发一个侦听客户端连接的tcp服务器进程.期望客户端发送部分数据包.服务器进程在收到来自客户端的整个数据包(标头,数据和页脚)之前无法处理数据包.

为了处理部分数据包,服务器进程需要将数据包(或部分数据包)从每个客户端连接推送到队列.服务器将维护每个客户端连接的队列.

现在我的问题是如何在使用boost asio时获取套接字文件描述符.我打算使用套接字文件描述符中的整数值,并创建一个std :: map容器来处理每个客户端连接的队列.

std::map< int, std::deque< std::string >

如果检索套接字文件描述符不可行,那么可能是最佳性能的替代方案.我需要使用吗?

std::map< tcp::socket *,std::deque< std::string> > ?

提前致谢.

调用各种接收函数时,将指针(或共享指针)传递给与该连接关联的结构.从套接字描述符中不需要映射,因为您永远不需要触及套接字描述符.

像这样:

boost::asio::async_read(socket, boost::asio::buffer(buf),
    boost::bind(&MyConnection::doRead, this, boost::asio::placeholders::error));


void MyConnection::doRead(const boost::system::error_code& error)
{
 // Here, we are in the object associated with this connection
网友评论