//--------------------------------------------------------------------------- #ifndef DMNetServerFH #define DMNetServerFH //--------------------------------------------------------------------------- #include #include #include #include #include "IdAntiFreeze.hpp" #include "IdAntiFreezeBase.hpp" #include "IdBaseComponent.hpp" #include "IdComponent.hpp" #include "IdUDPBase.hpp" #include "IdUDPServer.hpp" //--------------------------------------------------------------------------- #include "IdUDPClient.hpp" //--------------------------------------------------------------------------- #include "CenterCommF.h" //--------------------------------------------------------------------------- #define INT_MAX_PROCESS_COMM 128 /* ÃÖ´ë process Åë½Å ¼³Á¤ */ #define S_SUCC 0 // success #define S_FAIL -1 // fail /* * ¼Û¼ö½Å ´ë»ó ÇÁ·Î¼¼½º Á¤º¸ */ typedef struct tagSystemInfo { AnsiString ProcessId; /* ÇÁ·Î¼¼½º ID */ BYTE SystemId; /* ½Ã½ºÅÛ ID */ AnsiString SystemTp; /* ½Ã½ºÅÛ Type */ DWORD IpAddress; /* ip address */ int UdpPort; /* udp port */ } ST_SYSTEM_INFO; //--------------------------------------------------------------------------- typedef struct process_communication_struct { int Count; /* process °¹¼ö */ ST_SYSTEM_INFO Unit[INT_MAX_PROCESS_COMM]; } PROCESS_COMMUNICATION_STRUCT; //--------------------------------------------------------------------------- /* * ¼Û¼ö½Å µ¥ÀÌÅÍ ÀúÀå Å¥ Á¤º¸ */ #define MAX_UDP_MSG_Q 128 typedef struct { int QIdx; //IPC_MSG_DATA Rx[MAX_UDP_MSG_Q]; } UDP_DATA_Q; //--------------------------------------------------------------------------- class TDMNetServer : public TDataModule { __published: // IDE-managed Components TIdUDPServer *FUDPSvr; TIdAntiFreeze *IdAntiFreeze1; TIdUDPClient *FUDPCli; void __fastcall FUDPSvrUDPRead(TIdUDPListenerThread *AThread, TBytes AData, TIdSocketHandle *ABinding); void __fastcall DataModuleDestroy(TObject *Sender); private: // User declarations public: String __fastcall GetLocalIP(); void __fastcall Close(); int __fastcall Open(int ABuffSize); int __fastcall GetPort(); String __fastcall GetIP(); //int __fastcall RecvDataCommon(INT_PACKET *PKT); public: HWND__ *Handle; AnsiString ErrorMsg; UDP_DATA_Q *DataQ; ST_SYSTEM_INFO Info; HWND FHandle; AnsiString FTrsPrcsId; AnsiString FRcvPrcsId; int FBindPort; BYTE FPktSeq; BYTE __fastcall GetNextPktSeq(); int __fastcall SendData(String AHost, int APort, BYTE *AData, int ALen); int __fastcall SendData(DWORD AHost, int APort, BYTE *AData, int ALen); public: // User declarations __fastcall TDMNetServer(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TDMNetServer *DMNetServer; //--------------------------------------------------------------------------- extern PROCESS_COMMUNICATION_STRUCT g_Process; //--------------------------------------------------------------------------- #endif