TCP/IP und Java
-
Hallo Leute!
Ich programmiere eigetnlich C++ und muss jetzt aber ein vorhandenes C++ Programm in Java umschreiben.
Die akutelle C++ Klasse an der ich derzeit arbeite ist ein TCP/IP-Client :
Header:
#include <iostream> #include <string> #include <boost/asio.hpp> #include <boost/thread/thread.hpp> using boost::asio::ip::tcp; class create_client_com { public: int error_code; std::string recv_msg; std::string error_msg; boost::asio::io_service io_service; tcp::resolver resolver; tcp::resolver::query query; tcp::resolver::iterator endpoint_iterator; tcp::resolver::iterator end; boost::system::error_code error; boost::system::error_code ignored_error; tcp::socket socket; void send(char[]); size_t recv(char dat[]); int get_error(void); create_client_com(const char* , const char*); ~create_client_com(void); };
Source:
#include "create_client_com.h" #include <string> #include <iostream> #include <boost/asio.hpp> using boost::asio::ip::tcp; create_client_com::create_client_com(const char* ip_adress, const char* port) : resolver( io_service ), query(ip_adress, port) ,socket(io_service) { error_code=0; try { std::cout << "Verbindung zu <IP: " << ip_adress << " > <Port: " << port << " > wird hergestellt...\n"; endpoint_iterator = resolver.resolve(query); error = boost::asio::error::host_not_found; while (error && endpoint_iterator != end) { socket.close(); socket.connect(*endpoint_iterator++, error); } if (error) throw boost::system::system_error(error); std::cout << "Verbindung hergestellt!\n"; } catch (std::exception& e) { error_code = 1; std::cout << "Fehler in create_client_com Konstruktor!\n"; std::cerr << e.what() << std::endl; } } create_client_com::~create_client_com(void) { socket.close(); } void create_client_com::send(char buf_send[]) { try{ //Schreiben boost::asio::write(socket, boost::asio::buffer(buf_send), boost::asio::transfer_all(), ignored_error); //schreibt solange bis speicher voll (ca. 48259 Bytes) } catch (std::exception& e) { error_code = 2; std::cerr << e.what() << std::endl; } } size_t create_client_com::recv(char dat[]) { char temp[2000] = {'\0'}; try{ //Lesen size_t len = socket.read_some(boost::asio::buffer(temp), error); //Blockierende Funktion! if (error == boost::asio::error::eof) { std::cout << "Connection closed cleanly by peer.\n"; error_code = 3; } else if (error) { error_code = 5; throw boost::system::system_error(error); // Some other error. } if(temp[len] != '\0') temp[len] = '\0'; for(int i=0; i <= (int)len ;i++) dat[i] = temp[i]; return len; } catch (std::exception& e) { error_code = 4; std::cerr << e.what() << std::endl; return 0; } } int create_client_com::get_error() { return error_code; }
Ich bräuchte dazu ( TCP-Client aufbauen) nen kleines Tutorial.
Gibt es gute, kurze und deutsche ( )?Gruß
WAR][FIRE
-
-
Danke!