#pragma once
class BaseProcess;
class ECTrainer;
class KeepAlive : public BaseProcess {
const int PORT = 49152; // The port on which to listen for incoming data
const int KEEP_ALIVE_WAIT_COUNT = 20; // 送信間隔 x100ms
SOCKET _socket; // ソケット
struct sockaddr_in _socketAddr; // 接続先アドレス
bool _sent; // シグナル発信状態 true: 発信済 false: 未発信
int _socketAddrLen; // アドレス情報のサイズ
int _count; // ループカウント
// ECTrainerインスタンス取得
ECTrainer* Ect() { return (ECTrainer*)_pUserdata; }
public:
static const int SOCKET_BUF_LEN = 512; // Socket通信バッファサイズ
// コンストラクタ
KeepAlive(ECTrainer* pEct);
// 初期化
bool Init();
// メインループ
bool Routine();
// シグナル発信状態取得
bool IsSent() { return _sent; };
// ソケット取得
SOCKET GetSocket() { return _socket; }
// ソケットアドレス取得
struct sockaddr* GetSocketAddr() { return (struct sockaddr*)&_socketAddr; }
// ソケットアドレス長取得
int GetSocketAddrLen() { return _socketAddrLen; }
};