Poco क्या है और इसकी आवश्यकता क्यों है?
POCO (Portable Components) C++ के लिए एक शक्तिशाली क्रॉस-प्लेटफ़ॉर्म क्लास लाइब्रेरी है, जो नेटवर्क एप्लिकेशन, मल्टीथ्रेडिंग, डेटाबेस, XML, JSON, HTTP, FTP, SMTP और कई अन्य कार्यों के लिए तैयार समाधान प्रदान करती है। यह लाइब्रेरी आधुनिक C++ में लिखी गई है और Boost Software License के तहत वितरित की जाती है, जिससे इसे व्यावसायिक प्रोजेक्ट्स में बिना किसी प्रतिबंध के उपयोग किया जा सकता है।
Poco के मुख्य लाभ:
- क्रॉस-प्लेटफ़ॉर्म — Windows, Linux, macOS, iOS, Android पर काम करता है
- मॉड्यूलर — केवल आवश्यक कंपोनेंट्स को कनेक्ट कर सकते हैं
- प्रदर्शन — हाई-लोड सिस्टम के लिए ऑप्टिमाइज़्ड
- पूर्णता — C++ डेवलपर की 90% सामान्य समस्याओं को कवर करता है
pythonlib.ru शैक्षिक साइट के लिए यह ध्यान देने योग्य है कि Poco, Python लाइब्रेरीज़ (requests, asyncio, smtplib) का C++ संस्करण है। अगर आप Python जानते हैं और C++ पर आ रहे हैं, तो Poco आपका सबसे अच्छा दोस्त बनेगा।
Poco की इंस्टॉलेशन
पैकेज मैनेजर के माध्यम से इंस्टॉलेशन
Linux (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install libpoco-dev
macOS (Homebrew):
brew install poco
Windows (vcpkg):
vcpkg install poco
सोर्स कोड से इंस्टॉलेशन
git clone https://github.com/pocoproject/poco.git
cd poco
mkdir cmake-build
cd cmake-build
cmake ..
cmake --build . --config Release
sudo cmake --install .
CMake प्रोजेक्ट में कनेक्ट करना
find_package(Poco REQUIRED COMPONENTS Net NetSSL Util JSON XML)
target_link_libraries(myapp Poco::Net Poco::Util Poco::JSON Poco::XML)
त्वरित शुरुआत: 5 मिनट में HTTP क्लाइंट
एक सरल HTTP क्लाइंट लिखते हैं जो वेबसाइट से डेटा प्राप्त करके कंसोल पर दिखाता है:
#include <Poco/Net/HTTPClientSession.h>
#include <Poco/Net/HTTPRequest.h>
#include <Poco/Net/HTTPResponse.h>
#include <Poco/StreamCopier.h>
#include <iostream>
int main() {
try {
// HTTP सेशन बनाएं
Poco::Net::HTTPClientSession session("api.github.com");
// GET रिक्वेस्ट बनाएं
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, "/users/octocat");
request.setContentType("application/json");
// रिक्वेस्ट भेजें
session.sendRequest(request);
// रिस्पॉन्स प्राप्त करें
Poco::Net::HTTPResponse response;
std::istream &responseStream = session.receiveResponse(response);
// स्टेटस और रिस्पॉन्स बॉडी दिखाएं
std::cout << "Status: " << response.getStatus() << " " << response.getReason() << std::endl;
std::cout << "Body:" << std::endl;
Poco::StreamCopier::copyStream(responseStream, std::cout);
} catch (Poco::Exception &ex) {
std::cerr << "Error: " << ex.displayText() << std::endl;
return 1;
}
return 0;
}
कंपाइलेशन:
g++ -o http_client http_client.cpp -lPocoNet -lPocoFoundation
Poco के मुख्य तरीके और फंक्शन (नेटवर्क यूटिलिटीज़)
1. HTTPClientSession — HTTP सेशन बनाना
क्या करता है: HTTP सर्वर से कनेक्शन स्थापित करता है और रिक्वेस्ट भेजने व रिस्पॉन्स प्राप्त करने का प्रबंधन करता है।
पैरामीटर:
host— सर्वर का पता (स्ट्रिंग)port— पोर्ट (डिफ़ॉल्ट HTTP के लिए 80)timeout— कनेक्शन टाइमआउट
उदाहरण:
Poco::Net::HTTPClientSession session("example.com", 8080);
session.setTimeout(Poco::Timespan(10, 0)); // 10 सेकंड
session.setKee