Advertisement
sIliass1

Untitled

Apr 8th, 2020
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.88 KB | None | 0 0
  1. Result<Socket> Socket::ConnectTo(const std::string& host, uint16_t port) {
  2.     std::cout << "Connect\n";
  3.     auto io_context = GetCurrentScheduler()->GetCurrentIOContext();
  4.     asio::ip::tcp::resolver resolver(*io_context);
  5.     asio::ip::tcp::socket socket(*io_context);
  6.  
  7.     asio::error_code error;
  8.  
  9.     auto entries = resolver.resolve(host, std::to_string(port), error);
  10.  
  11.     for (const auto& entry: entries) {
  12.         const auto& endpoint = entry.endpoint();
  13.         if(!socket.is_open()) {
  14.             socket.open(endpoint.protocol(), error);
  15.         }
  16.         socket.connect(endpoint, error);
  17.         if(!error) {
  18.             return make_result::Ok(Socket(std::move(socket)));
  19.         }
  20.     }
  21.  
  22.     std::cout << error << std::endl;
  23.  
  24.     return make_result::Fail(error);
  25. }
  26.  
  27. Result<Socket> Socket::ConnectToLocal(uint16_t port) {
  28.     return ConnectTo("localhost", port);
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement