63 lines
1.1 KiB
C++
63 lines
1.1 KiB
C++
#include "../Util/Util.h"
|
|
#include "../Server/Server.h"
|
|
|
|
using namespace std;
|
|
|
|
bool send_backup_msg(unsigned short _port, long _time);
|
|
|
|
int main(int argc, char* argv[]) {
|
|
|
|
//#ifdef DEBUG
|
|
Util util;
|
|
//#endif
|
|
|
|
if (argc != 3) {
|
|
return -1;
|
|
}
|
|
|
|
if (!Util::isValidPort(string(argv[1]))) {
|
|
return -1;
|
|
}
|
|
|
|
unsigned short port;
|
|
{
|
|
stringstream ss(argv[1]);
|
|
ss >> port;
|
|
}
|
|
|
|
long backup_time;
|
|
{
|
|
stringstream ss(argv[2]);
|
|
ss >> backup_time;
|
|
}
|
|
|
|
while (true) {
|
|
time_t cur_time = time(NULL);
|
|
while (cur_time >= backup_time) {
|
|
backup_time += Util::gserver_backup_interval;
|
|
}
|
|
sleep(backup_time - cur_time);
|
|
if (!send_backup_msg(port, backup_time)) {
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
bool send_backup_msg(unsigned short _port, long _time) {
|
|
stringstream ss;
|
|
ss << "backup " << _time;
|
|
Socket socket;
|
|
if (!socket.create() || !socket.connect("127.0.0.1", _port) || !socket.send(ss.str())) {
|
|
return false;
|
|
}
|
|
string recv_msg;
|
|
socket.recv(recv_msg);
|
|
socket.close();
|
|
if (recv_msg != "done") {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|