#pragma once #define ACTION_OPENFILE (CString)"OPEN_FILE;"//打开文件 #define ACTION_TANSPRODUCTINFO (CString)"TRANS_PRODUCT;" //传Product #define ACTION_STARTWORK (CString)"START_WORK;" //标刻指定区域 //#define ACTION_TRANSFILE (CString)"TRANS_FILE;"//传文件 #define ACTION_SETSPECAILOBJ (CString)"SET_SPECAILOBJ;"//设置特殊对象 #define ACTION_BMARKSELOBJMODE (CString)"MARK_SELOBJMODE;"//设置选择加工模式 #define ACTION_SELECTOBJ (CString)"SELECT_OBJ;"//选择OBJ #define TRACK_1 (CString)"TRACK1;" #define TRACK_2 (CString)"TRACK2;" #define NetData_MaxLen 1024*1024 enum CurRcvDataType//当前要接收的数据类型 { DataType_String = 1, //接收文本 DataType_DXF, //接收DXF文件 DataType_MAK, //接收MAK文件 DataType_PAR, //接收MAK文件 DataType_CPRODUCT//接收Product对象 }; class CNetData { public: CNetData (); ~CNetData (); CurRcvDataType m_dataType; bool SetData(CurRcvDataType DataType, int datalen, void* data); char* m_Realdata; int m_dataLen; }; CNetData ::CNetData () { m_Realdata = new char[NetData_MaxLen]; memset(m_Realdata, 0, NetData_MaxLen); } bool CNetData::SetData(CurRcvDataType DataType, int datalen,void* data) { m_dataType = DataType; if (datalen>NetData_MaxLen) { return false; } memcpy(m_Realdata, data, datalen); return true; } CNetData ::~CNetData () { if (m_Realdata!=NULL) { delete[]m_Realdata; m_Realdata = NULL; } } // CServerMgr 命令目标 #include "DlgSW_XL_Flow.h" #include "Product.h" #include using namespace std; class CServerMgr : public CSocket { public: CServerMgr(); virtual ~CServerMgr(); bool StartServer(int ListenPort = 2404);//启动服务 bool StopServer();//启动服务 void SetDlg(CDlgSW_XL_Flow * pdlg) { m_Dlg = pdlg; }; void BroadCast(CString msg);//广播,向所有连接对象发送此消息 CString m_RcvFileName=NULL; //接收到的文件名 CProduct m_RcvProduct; //接收到的CProduct对象 int m_RcvAreaIndex; //接收到的当前加工区域 int m_RcvCurTrackIndex; //接收到的当前加工轨道 static vector ServerVec;//服务员的容器 private: virtual void OnAccept(int nErrorCode); virtual void OnClose(int nErrorCode); virtual void OnReceive(int nErrorCode); static void DeleteClientObject(CServerMgr* pConn); CurRcvDataType m_CurRcvDataType = DataType_String;//当前要接收的数据类型 CDlgSW_XL_Flow * m_Dlg; }; extern CServerMgr * gServer;