Právě prohlížíš: client.cpp
Zpět do složkyStáhnout
  1.  
  2. #include <boost/asio.hpp>
  3. //using boost::asio::ip::tcp;
  4.  
  5. class SocketClientXX {
  6. private:
  7. int port;
  8. //const char ip[15];
  9. boost::asio::io_service io_service;
  10. boost::asio::ip::tcp::resolver::iterator endpoint_iterator;
  11. boost::asio::ip::tcp::socket sock;
  12. public:
  13. void init(const char*, const char* );
  14. SocketClientXX();
  15. bool connect();
  16. bool read(int bytes, char *text);
  17. bool send(int length, char *text);
  18. bool send(std::string text);
  19. unsigned int timeout;
  20. //boost::asio::connect(socket, endpoint_iterator);
  21. };
  22.  
  23. SocketClientXX::SocketClientXX() {
  24.  
  25.  
  26. }
  27. void SocketClientXX::init(const char* ip_a, const char* port_a) {
  28. boost::asio::ip::tcp::resolver resolver(io_service);
  29. boost::asio::ip::tcp::resolver::query query(ip_a, port_a);
  30. boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
  31. sock=boost::asio::ip::tcp::socket(io_service);
  32.  
  33. }
  34.  
  35. bool SocketClientXX::connect() {
  36. boost::asio::connect(sock, endpoint_iterator);
  37. return true;
  38. }
  39.  
  40. bool SocketClientXX::read(int bytes, char *text) {
  41. //boost::system::error_code error;
  42. char buffer = 0;
  43. int length = 0;
  44. while(bytes>0) {
  45. size_t len = sock.receive(boost::asio::buffer(&buffer, 1));
  46. bytes--;
  47. text[length] = buffer;
  48. length++;
  49.  
  50. }
  51. return true;
  52. }
  53.  
  54. bool SocketClientXX::send(int length, char *text) {
  55. sock.send(boost::asio::buffer(text, length));
  56. return true;
  57. }
  58. bool SocketClientXX::send(std::string text) {
  59. sock.send(boost::asio::buffer(text.c_str(), text.length()));
  60. return true;
  61. }
  62.  
  63.  
Parsed using GeSHi 1.0.8.11 at 0.011