#include "TcpSocket.hpp" #include "NetConst.hpp" #include "values/DnaManager.hpp" #include #include #include #include int main() { int sock = TcpSocket::connectt("petrovv.com", 8888); if (sock < 0) { printf("Error %d", sock); return 0; } std::ifstream idf("ID.bin", std::ios_base::binary); uint64_t ID = 0; idf.read((char *)&ID, sizeof(ID)); idf.close(); printf("id: %ld\n", ID); TcpSocket::sendt(sock, &StartHeader, sizeof(StartHeader)); TcpSocket::sendt(sock, &ID, sizeof(ID)); Message message; size_t needed_gen = 0; char filename[20]; while (true) { TcpSocket::recvt(sock, &message, sizeof(Message)); if (message.mess != Mess::REQ_SEND_GEN) { message.mess = Mess::RES_NO; TcpSocket::sendt(sock, &message, sizeof(Message)); break; } needed_gen = message.data; int ret = sprintf(filename, "gen%04ld.bin", needed_gen); filename[ret] = 0; if (!std::filesystem::exists(filename)) { message.mess = Mess::RES_NO; TcpSocket::sendt(sock, &message, sizeof(Message)); break; } std::ifstream sfile(filename, std::ios_base::binary | std::ios_base::in); std::vector net; net.resize(NUM_PER_GEN); sfile.read((char *)net.data(), NUM_PER_GEN * sizeof(NetUnit)); message.mess = Mess::RES_OK; message.data = NUM_PER_GEN * sizeof(NetUnit); TcpSocket::sendt(sock, &message, sizeof(Message)); TcpSocket::sendt(sock, net.data(), NUM_PER_GEN * sizeof(NetUnit)); } TcpSocket::closet(sock); return 0; }