我正在使用asio库编写异步UDP服务器。我想获得连接到我的服务器的那些UDP客户端的主机名。我怎么能这样做?另外,是否有可能获得UDP客户端的主机名而无需反向DNS解析它就像java库guava inetaddress一样?
class udp_server
{
asio::ip::udp::socket socket;
asio::ip::udp::endpoint remote_endpoint;
std::array<std::uint8_t,16384> buffer;
sqlite::sqlite db;
void start()
{
socket.async_receive_from(asio::buffer(buffer),remote_endpoint,[this](const std::error_code& error,std::size_t bytes)
{
start();
});
}
public:
udp_server(asio::io_service& io_service,unsigned long port,const char* dbpath):socket(io_service,asio::ip::udp::endpoint(asio::ip::udp::v4(),port)),db(dbpath)
{
start();
}
};
如何获取此remote_endpoint的主机名?谢谢! 抱歉我的英语不好。