|
#pragma once
|
|
|
|
#include "akNetworkLinker.h"
|
#include <WinSock2.h>
|
|
#include "akThread.h"
|
#include "akPacketStorage.h"
|
|
class AKNETWORK_DLLSPEC CakPIPEClient : public CakThreadInterface
|
{
|
public:
|
typedef void (*SystemMsgFunc) (char* pMsg, int nMsglen, void*);
|
|
public:
|
CakPIPEClient(void);
|
~CakPIPEClient(void);
|
|
void setServerName(char* pServerName);
|
|
// ½Ã½ºÅÛ ¸Þ¼¼Áö ¼ö½Å ÄÝ¹é ¼³Á¤
|
void SetSystemMessageCallback(SystemMsgFunc userFunc, void* data = NULL);
|
// ¸Þ¼¼Áö Àü¼Û
|
bool Send(char* pSend, int nLen);
|
bool SendForce(char* pSend, int nLen, int nWaitTimeMS=0);
|
bool SendLarge(char* pSend, long nLen, int nWaitTimeMS=0);
|
|
|
protected:
|
void setSystemMsg(const char* pMsg, ...);
|
|
SystemMsgFunc m_systemmsgFunc;
|
void* m_systemmsgData;
|
|
virtual void threadRun();
|
|
protected:
|
CPacketStorage m_PacketSorageSend;
|
CakThread m_akThread;
|
int m_nWaitTime;//0
|
HANDLE m_hNamedPipe;
|
DWORD m_nNumberOfBytesWritten;
|
char m_strPipename[64];// = L"\\\\.\\pipe\\MyNamedPipe";// ÆÄÀÌÇÁ ¿ÀºêÁ§Æ® À̸§
|
//CRITICAL_SECTION m_csSendSafe;
|
|
// class queueData
|
// {
|
// public:
|
// queueData()
|
// {
|
// m_nLen = 0;
|
// m_pData = NULL;
|
// };
|
// queueData(const queueData& rhs)
|
// {
|
// m_nLen = 0;
|
// m_pData = NULL;
|
//
|
// if(rhs.m_nLen > 0)
|
// {
|
// m_pData = new char[rhs.m_nLen+1];
|
// memcpy(m_pData, rhs.m_pData, sizeof(char)*(rhs.m_nLen));
|
// m_pData[rhs.m_nLen] = 0;
|
// m_nLen = rhs.m_nLen;
|
// }
|
// }
|
// ~queueData()
|
// {
|
// clear();
|
// };
|
// queueData& operator=(const queueData& rhs)
|
// {
|
// clear();
|
// if(rhs.m_nLen > 0)
|
// {
|
// m_pData = new char[rhs.m_nLen+1];
|
// memcpy(m_pData, rhs.m_pData, sizeof(char)*(rhs.m_nLen));
|
// m_pData[rhs.m_nLen] = 0;
|
// m_nLen = rhs.m_nLen;
|
// }
|
// return *this;
|
// };
|
// void clear()
|
// {
|
// if(m_nLen > 0)
|
// {
|
// delete [] m_pData;
|
// m_pData = NULL;
|
// m_nLen = 0;
|
// }
|
// }
|
// void setData(char* pData, long nLen)
|
// {
|
// clear();
|
// if(nLen <= 0 || pData == NULL)
|
// {
|
// return;
|
// }
|
//
|
// m_pData = new char[nLen+1];
|
// memcpy(m_pData, pData, sizeof(char)*nLen);
|
// m_pData[nLen] = 0;
|
// m_nLen = nLen;
|
// }
|
//
|
// //char Data[4096];
|
// char* m_pData;
|
// long m_nLen;
|
// };
|
// std::queue<queueData> m_queSendData;
|
};
|