/* * client.cpp * * Created on: 7 сент. 2022 г. * Author: alexander */ #include #include #include #include namespace zh { ClientTCP::ClientTCP(const std::string &address, const unsigned short int port, const unsigned short int sizeBuffer) : Server(port, sizeBuffer), _connect(false), _connfd(-1) { _socket = std::make_unique(AF_INET, SOCK_STREAM, IPPROTO_IP); _address = std::make_unique
(AF_INET, address, port); } void ClientTCP::connect() { if (_connect) { std::cerr << "Клиентский сокет уже подключён к серверному сокету!" << std::endl; return; } if (::connect((*_socket), reinterpret_cast(&(*_address)), (*_address).size()) != 0) std::cerr << "Не удаётся подключить клиентский сокет к серверному сокету!" << std::endl; else _connect = true; chat(); } void ClientTCP::chat() { while (_connect) { Buffer *bf = &(*_buffer); bf->clear(); std::cin.getline(reinterpret_cast(bf->operator void *()), bf->getSize()); write(_connfd, *bf, bf->getSize()); } close(*_socket); } }