kav*_*ero 6 c++ udp client-server hole-punching
我试图用一个打孔的protocole制作一个服务器客户端.所以我发送到我的服务器我的客户端IP和客户端端口,当连接第二个用户时,服务器向客户端发送Ip和另一个客户端的端口.所以,当我有这个,我试图在我的两个客户端之间建立连接,我有一个错误与boost :: asio
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
Run Code Online (Sandbox Code Playgroud)
what():未找到服务已中止
这是我的代码
std::vector<std::string> response;
response = split(reply, ':');
std::cout << "name : " << response[0] << std::endl;
std::cout << "adresse : " << response[1] << std::endl;
std::cout << "port : " << response[2] << std::endl;
udp::resolver::query query(udp::v4(), response[0], response[1]);
std::cout << "resolved - - - -" << std::endl;
struct client *cl = new struct client();
cl->endpoint_iterator = resolver.resolve(query);
// It Crash HERE
cl->sender_endpoint = *endpoint_iterator;
cl->name = response[0];
_clients.push_back(cl);
Run Code Online (Sandbox Code Playgroud)
检查您的查询的参数。
您将打印响应[1]作为主机地址,打印响应[2]作为端口。但是您正在构建查询对象,其中response[0] 作为主机地址,response[1] 作为端口/服务。
我怀疑“找不到服务已中止”是指您的主机名看起来不像端口号或服务名称。