2025-01-26 22:51:32 +01:00

75 lines
1.6 KiB
C++

#include "TcpSocket.hpp"
#include "NetConst.hpp"
#include "values/DnaManager.hpp"
#include <iostream>
#include <fstream>
#include <vector>
#include <filesystem>
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<NetUnit> 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;
}