/* * client.h * * Created on: 10 авг. 2022 г. * Author: alexander */ #pragma once #include #include #include #include #include #include #define MAXLINE 1024 namespace azh { class Client { private: Socket _socket; Address _address; char _buffer[MAXLINE]; long int _recv_len; public: Client(Socket &socket, Address &address) : _socket(socket), _address(address), _recv_len(0) { } Client() : _recv_len(0) { } void createUDP(unsigned short int port) { _socket = { AF_INET, SOCK_DGRAM, IPPROTO_UDP }; _address = { AF_INET, INADDR_ANY, port }; } void start() { while (true) { char message[MAXLINE]; message[MAXLINE] = '\0'; std::cin.getline(message, MAXLINE); sendto(_socket, message, strlen(message), MSG_CONFIRM, reinterpret_cast(&_address), _address.size()); _recv_len = recvfrom(_socket, _buffer, MAXLINE - 1, MSG_WAITALL, reinterpret_cast(&_address), &_address.size()); if (_recv_len > 0) { _buffer[_recv_len] = '\0'; std::cout << _buffer << std::endl; } } } }; }