diff --git a/include/fc/network/tcp_socket.hpp b/include/fc/network/tcp_socket.hpp index 69d4ea4..18fa7af 100644 --- a/include/fc/network/tcp_socket.hpp +++ b/include/fc/network/tcp_socket.hpp @@ -12,6 +12,7 @@ namespace fc { ~tcp_socket(); void connect_to( const fc::ip::endpoint& e ); + fc::ip::endpoint remote_endpoint()const; /// istream interface /// @{ diff --git a/src/network/tcp_socket.cpp b/src/network/tcp_socket.cpp index daabd2e..0f7f0b3 100644 --- a/src/network/tcp_socket.cpp +++ b/src/network/tcp_socket.cpp @@ -37,6 +37,11 @@ namespace fc { return fc::asio::write_some( my->_sock, boost::asio::buffer( buf, len ) ); } + fc::ip::endpoint tcp_socket::remote_endpoint()const + { + auto rep = my->_sock.remote_endpoint(); + return fc::ip::endpoint(rep.address().to_v4().to_ulong(), rep.port() ); + } size_t tcp_socket::readsome( char* buf, size_t len ) { auto r = fc::asio::read_some( my->_sock, boost::asio::buffer( buf, len ) );