मैं बूस्ट एएसआईओ लाइब्रेरी का उपयोग कर सी ++ में एक सर्वर लिख रहा हूं। मैं अपने सर्वर के लॉग में दिखाए जाने के लिए क्लाइंट आईपी का स्ट्रिंग प्रस्तुति प्राप्त करना चाहता हूं। क्या कोई जानता है इसे कैसे करना है?बढ़ावा के आईपी पते को कैसे प्राप्त करें :: asio :: ip :: tcp :: सॉकेट?
46
A
उत्तर
67
सॉकेट में एक ऐसा फ़ंक्शन है जो रिमोट एंडपॉइंट पुनर्प्राप्त करेगा।
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();
21
मैं इस (लंबी-ish) आदेशों की श्रृंखला एक जाना देने हैं, तो वे दूरदराज के अंत आईपी पते की स्ट्रिंग प्रतिनिधित्व को पुनः प्राप्त करेगा या, boost::lexical_cast
साथ, और भी आसान:
#include <boost/lexical_cast.hpp>
std::string s = boost::lexical_cast<std::string>(socket.remote_endpoint());
संबंधित मुद्दे
- 1. बढ़ावा :: asio :: ip :: tcp :: सॉकेट जुड़ा हुआ है?
- 2. किसी को कैसे बढ़ावा देना चाहिए :: asio :: ip :: udp :: सॉकेट?
- 3. क्या यह फोर्क() को बढ़ावा देने के लिए सुरक्षित है :: asio :: ip :: tcp :: iostream?
- 4. "कनेक्शन कम" बूस्ट पर कनेक्ट करें :: asio :: ip :: udp :: सॉकेट
- 5. बढ़ावा देता है :: asio :: ip :: tcp :: resolver :: iterator क्या करता है?
- 6. बढ़ावा :: asio बहुस्त्र्पीय उदाहरण
- 7. एंड्रॉइड एमुलेटर के आईपी पते को कैसे प्राप्त करें?
- 8. boost :: asio :: tcp :: सॉकेट बंद करें और बिना हैंडलर को रद्द करें
- 9. एक देशी सॉकेट से बूस्ट.एसीओ सॉकेट कैसे बनाएं?
- 10. मशीन पर सभी आईपी पते प्राप्त करें
- 11. Boost :: asio में सॉकेट कनेक्शन लाइव होने पर कैसे जांचें?
- 12. आईपी पते से होस्ट नाम प्राप्त करें
- 13. बढ़ावा asio टीसीपी सत्र खुला रखने
- 14. बेहतर बढ़ावा asio उदाहरण
- 15. आईपी पते के आधार पर होस्ट नाम कैसे प्राप्त करें?
- 16. आईपी पते
- 17. एक विशिष्ट ईथरनेट इंटरफेस को एएसओ सॉकेट मल्टीकास्ट को बढ़ावा दें
- 18. आईपी पते
- 19. बढ़ावा देने के लिए कॉल में एएसओ सर्वर लटका है :: सॉकेट
- 20. सी ++/सीएलआई .NET सॉकेट में boost :: asio सॉकेट को कैसे चालू करें?
- 21. को बढ़ावा देने के दौरान "खराब फ़ाइल डिस्क्रिप्टर" मिला :: एएसओ और बूस्ट :: थ्रेड
- 22. आईपी पते
- 23. स्थिर आईपी पते
- 24. कैसे आईपी पते
- 25. asio :: tcp :: सॉकेट के async_read_some और async_receive के बीच क्या अंतर है?
- 26. होस्ट नाम को आईपी पते
- 27. एकाधिक आईपी पते पर कैसे सुनें?
- 28. आईपी पते और प्रोटोकॉल
- 29. बढ़ावा देने के लिए प्रॉक्सी समर्थन कैसे जोड़ें :: asio?
- 30. एकाधिक आईपी पते
आपके उत्तर के लिए धन्यवाद, मैं पता लगा श्रृंखला बस के रूप में लिखा जा सकता है:।। socket.remote_endpoint() को संबोधित() to_string() – kyku
हाँ, इस तरह मैंने यह किया होगा (माना जाता है कि अंतरिम बिंदुओं पर नल या त्रुटियों की कोई संभावना नहीं थी)। मैंने इसे स्पष्टीकरण उद्देश्यों के लिए विस्तारित कर दिया। मेरी राय में, एक-लाइनर संस्करण बेहतर है (मुझे अपना कोड अपेक्षाकृत कॉम्पैक्ट पसंद है, इसलिए मैं इसे स्क्रीन पर अधिक देख सकता हूं)। – paxdiablo