Telnet-Verbindung aufbauen
-
Hallo,
ich schreibe immoment ein Programm und müsste eine Telent- Verbindung aufbauen.
Ich habe es wir folgt probiert(aus meinem C++ Buch):#include <iostream> #include <string> #include <cctype> #include <boost/bind.hpp> #if defined(ASIO_HAS_LOCAL_SOCKETS) using asio::local::stream_protocol; class uppercase_filter { public: uppercase_filter(asio::io_service& io_service) : socket_(io_service) { } stream_protocol::socket& socket() { return socket_; } void start() { // Wait for request. socket_.async_read_some(asio::buffer(data_), boost::bind(&uppercase_filter::handle_read, this, asio::placeholders::error, asio::placeholders::bytes_transferred)); } private: void handle_read(const asio::error_code& ec, std::size_t size) { if (!ec) { // Compute result. for (std::size_t i = 0; i < size; ++i) data_[i] = std::toupper(data_[i]); // Send result. asio::async_write(socket_, asio::buffer(data_, size), boost::bind(&uppercase_filter::handle_write, this, asio::placeholders::error)); } else { throw asio::system_error(ec); } } void handle_write(const asio::error_code& ec) { if (!ec) { // Wait for request. socket_.async_read_some(asio::buffer(data_), boost::bind(&uppercase_filter::handle_read, this, asio::placeholders::error, asio::placeholders::bytes_transferred)); } else { throw asio::system_error(ec); } } stream_protocol::socket socket_; boost::array<char, 512> data_; }; void run(asio::io_service* io_service) { try { io_service->run(); } catch (std::exception& e) { std::cerr << "Exception in thread: " << e.what() << "\n"; std::exit(1); } } int main(int argc, char* argv[]) { try { asio::io_service io_service; // Create filter and establish a connection to it. uppercase_filter filter(io_service); stream_protocol::socket socket(io_service); asio::local::connect_pair(socket, filter.socket()); filter.start(); // The io_service runs in a background thread to perform filtering. asio::thread thread(boost::bind(run, &io_service)); for (;;) { // Collect request from user. std::cout << "Enter a string: "; std::string request; std::getline(std::cin, request); // Send request to filter. asio::write(socket, asio::buffer(request)); // Wait for reply from filter. std::vector<char> reply(request.size()); asio::read(socket, asio::buffer(reply)); // Show reply to user. std::cout << "Result: "; std::cout.write(&reply[0], request.size()); std::cout << std::endl; } } catch (std::exception& e) { std::cerr << "Exception: " << e.what() << "\n"; std::exit(1); } } #else // defined(ASIO_HAS_LOCAL_SOCKETS) # error Local sockets not available on this platform. #endif // defined(ASIO_HAS_LOCAL_SOCKETS)
Doch habe ich immer wieder das Problem, dass ich die Fehlermeldung
"c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2008\projects\test\test\lol.cpp(14) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "boost/bind.hpp": No such file or directory"
bekomme.
Kann mir jemand sagen, wie ich diese Library einfüge oder wie ich noch leichter, falls möglich, eine Telnet-verbindung aufbauen kann.
Ich verwende Microsoft Visual Studio 2008
-
Da fehlt offensichtlich ein Includepfad. (sofern du natürlich die Library runtergeladen und installiert hast).
Hast du boost überhaupt runtergeladen und installiert?
Wenn ja, solltest du den Includepfad setzen (sollte im Buch erkärt sein).
-
Runtergeladen habe ich boost, aber ich weiß ehrlich gesagt nicht genau wo ich das dann hinpacken muss.
-
Hast du den Installer? - Für Windows gibt es einen gemütlichen Installer, der dir alles schön ordentlich an deinen gewünschten Ort hinpackt. Dann musst du in VC lediglich noch diesen Pfad angeben. (also für include und lib).
-
Ne den habe ich cniht, woher bekomme ich den denn?
-
-
Ich habe mir das jetzt runtergeladen und installiert.
ABer was muss ich jetzt machen?
-
Red - One schrieb:
Ich habe mir das jetzt runtergeladen und installiert.
ABer was muss ich jetzt machen?lesen...
vll ist das einfach genug:
http://www.kharchi.eu/wiki/doku.php?id=cpp:boost:installbb
-
Ich habe das jetzt endlich hinbekommen das zu installieren und nun bekomme ich diese Meldung:
"1>c:\dokumente und einstellungen\red-one\eigene dateien\visual studio 2008\projects\test asci\test asci\schalalala.cpp(128) : fatal error C1189: #error : Local sockets not available on this platform."
Was soll ich tun?
-
Red - One schrieb:
Ich habe das jetzt endlich hinbekommen das zu installieren und nun bekomme ich diese Meldung:
"1>c:\dokumente und einstellungen\red-one\eigene dateien\visual studio 2008\projects\test asci\test asci\schalalala.cpp(128) : fatal error C1189: #error : Local sockets not available on this platform."
Was soll ich tun?
Ein anderes beispiel von ASIO benutzen da dieses nicht für Windows gedacht ist.
Und auch mal ein wenig eigen Initiative zeigen scheint so als müsse man dir alles vorkauen.
-
Erstmal THX für die schnelle antwort.
Meinen letzten Nachrichten zufolge habe ich mich sehr lange damit beschäftigt.
Ich habe dieses Beispiel aus einem Buch entnommen das eig. für MEINE platform gedacht ist...
-
Sag mal wie das Buch heißt
-
Der C++ PROGRAMMIERER von Ulrich Breymann
-
Danke das Buch sieht gut aus.
Aber es scheint sich nicht auf Windows spezialisiert zu haben, ist doch auch ne Entwicklungsumgebung für Linux dabei.
-
ohhh verdammt, du hast recht.
Kann mir jemand sage wie man am schnellsten etwas an cmd schickt.
also z.B.
"telnet" um Telnet zu öffnen bzw.
"open" um eine erbidnung herzustellen, das wäre eht super freundlich.
Ich hoffe, dass ich in der zwischenzeit endlich mal selber die Lösung zu diesem "Problem" finde.
Danke im Voraus!
-
Welcome to myblog .
-
evilissimo schrieb:
...scheint so als müsse man dir alles vorkauen.
Genau. Das ist nicht die Aufgabe eines Chefkochs!