#include <boost/asio.hpp>
//using boost::asio::ip::tcp;
class SocketClientXX {
private:
int port;
//const char ip[15];
boost::asio::io_service io_service;
boost::asio::ip::tcp::resolver::iterator endpoint_iterator;
boost::asio::ip::tcp::socket sock;
public:
void init(const char*, const char* );
SocketClientXX();
bool connect();
bool read(int bytes, char *text);
bool send(int length, char *text);
bool send(std::string text);
unsigned int timeout;
//boost::asio::connect(socket, endpoint_iterator);
};
SocketClientXX::SocketClientXX() {
}
void SocketClientXX::init(const char* ip_a, const char* port_a) {
boost::asio::ip::tcp::resolver resolver(io_service);
boost::asio::ip::tcp::resolver::query query(ip_a, port_a);
boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
sock=boost::asio::ip::tcp::socket(io_service);
}
bool SocketClientXX::connect() {
boost::asio::connect(sock, endpoint_iterator);
return true;
}
bool SocketClientXX::read(int bytes, char *text) {
//boost::system::error_code error;
char buffer = 0;
int length = 0;
while(bytes>0) {
size_t len = sock.receive(boost::asio::buffer(&buffer, 1));
bytes--;
text[length] = buffer;
length++;
}
return true;
}
bool SocketClientXX::send(int length, char *text) {
sock.send(boost::asio::buffer(text, length));
return true;
}
bool SocketClientXX::send(std::string text) {
sock.send(boost::asio::buffer(text.c_str(), text.length()));
return true;
}