-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathEventDrivedSocket.h
53 lines (40 loc) · 1.16 KB
/
EventDrivedSocket.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// EventDrivedSocket.h: interface for the CEventDrivedSocket class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_EVENTDRIVEDSOCKET_H__37BC01BD_0382_4766_80F3_548A1D4638E7__INCLUDED_)
#define AFX_EVENTDRIVEDSOCKET_H__37BC01BD_0382_4766_80F3_548A1D4638E7__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
const int SOCKET_EVENT = 0;
const int WRITE_EVENT = 1;
const int QUIT_EVENT = 2;
class CEventDrivedSocket;
typedef struct
{
HANDLE hEvents[3];
HANDLE hSocket;
CEventDrivedSocket *pEDS;
}SOCKET_THREAD_STRUCT, *P_SOCKET_THREAD_STRUCT;
UINT SOCKET_THREAD_PROC(LPVOID lpvArg);
class CEventDrivedSocket
{
public:
virtual BOOL StartMonitor();
virtual BOOL WriteData(BYTE *pbBuffer, UINT nDataCount);
CEventDrivedSocket(LPCTSTR lpszHost, SHORT nPort);
virtual ~CEventDrivedSocket();
protected:
virtual BOOL StopMonitor();
virtual BOOL OnRead();
private:
virtual BOOL prv_WriteData();
private:
HANDLE m_hevQuit;
HANDLE m_hevWrite;
HANDLE m_hevSocket;
HANDLE m_hSocket;
CString m_strHost;
SHORT m_nPort;
};
#endif // !defined(AFX_EVENTDRIVEDSOCKET_H__37BC01BD_0382_4766_80F3_548A1D4638E7__INCLUDED_)