75 lines
1.6 KiB
C++
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;
|
|
} |