123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- //---------------------------------------------------------------------------
- #ifndef DMNetServerFH
- #define DMNetServerFH
- //---------------------------------------------------------------------------
- #include <Classes.hpp>
- #include <Controls.hpp>
- #include <StdCtrls.hpp>
- #include <Forms.hpp>
- #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
|