www.pudn.com > dialogic_IVR.rar > ClientSock.h


#if !defined(AFX_CLIENTSOCK_H__2C3F3283_CED8_11D3_9FEC_0080C8F67786__INCLUDED_) 
#define AFX_CLIENTSOCK_H__2C3F3283_CED8_11D3_9FEC_0080C8F67786__INCLUDED_ 
 
#include "afxsock.h" 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
// ClientSock.h : header file 
// 
 
typedef int (*PPROCESSRCVPACKET)(char *szPacket, int iPacketLen, void *pclientSock); 
 
///////////////////////////////////////////////////////////////////////////// 
// CClientSock command target 
 
class CClientSock : public CSocket 
{ 
// Attributes 
public: 
	long m_lAllEvent; 
	PPROCESSRCVPACKET m_pProcessRcvPacketFunc; 
 
// Operations 
public: 
	CClientSock(PPROCESSRCVPACKET pProcessRcvPacket); 
	virtual ~CClientSock(); 
 
// Overrides 
public: 
	int ProcessRcvDone(char *szPacket, int iPacketLen); 
	int BeginNewPacket(); 
	int ProcessRcvError(); 
	int GetDataFieldLen(char *szHeader, int iLength); 
	int AddToDataField(char *szRcvedData, int iLength); 
	int AddToHeader(char *szRcvedData, int iLength); 
 
	int m_iRcvState;	//0:表示正在接收包头,1:表示正在接收包中数据域 
	char *m_szPacketHeader, *m_szPacketData; 
	int m_iRcvedLen_PacketHeader, m_iRcvedLen_PacketData; 
	int m_iLen_DataField; 
	int m_iDefinedLen_PacketHeader;	//通讯协议中定义的包头长度 
	char m_aszPeerAddress[20]; 
	UINT m_iPeerPort; 
	BOOL m_bRcvDone; 
 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CClientSock) 
	public: 
	virtual void OnReceive(int nErrorCode); 
	virtual void OnClose(int nErrorCode); 
	//}}AFX_VIRTUAL 
 
	// Generated message map functions 
	//{{AFX_MSG(CClientSock) 
		// NOTE - the ClassWizard will add and remove member functions here. 
	//}}AFX_MSG 
 
// Implementation 
protected: 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_CLIENTSOCK_H__2C3F3283_CED8_11D3_9FEC_0080C8F67786__INCLUDED_)