كيفية الحصول على عنوان IP من دفعة :: :: اسيو الملكية الفكرية :: برنامج التعاون الفني :: مأخذ؟
-
03-07-2019 - |
سؤال
وأنا أكتب الخادم في C ++ باستخدام دفعة مكتبة اسيو. كنت ترغب في الحصول على تمثيل سلسلة IP العميل إلى أن يظهر في سجلات الخادم بلدي. لا أحد يعرف كيف نفعل ذلك؟
المحلول
ومقبس لديه وظيفة التي سيتم استرداد نقطة النهاية البعيدة. كنت أعطي هذا (العش طويلة) سلسلة من الأوامر الذهاب، يجب أن استرداد تمثيل سلسلة من عنوان IP نهاية البعيد:
asio::ip::tcp::socket socket(io_service);
// Do all your accepting and other stuff here.
asio::ip::tcp::endpoint remote_ep = socket.remote_endpoint();
asio::ip::address remote_ad = remote_ep.address();
std::string s = remote_ad.to_string();
وأو إصدار بطانة واحد:
asio::ip::tcp::socket socket(io_service);
// Do all your accepting and other stuff here.
std::string s = socket.remote_endpoint().address().to_string();
نصائح أخرى
وأو حتى أسهل، مع boost::lexical_cast
:
#include <boost/lexical_cast.hpp>
std::string s = boost::lexical_cast<std::string>(socket.remote_endpoint());
لا تنتمي إلى StackOverflow