一個udp server的仿組件的封裝,拋磚引玉
讓使用者隔離通訊層,只專注于業務層的代碼實現,一個UDP server組建的封裝和測試。貼上部分代碼,完整的源代碼請下載udpserver.tar.gz;cygwin下調試通過。
1
// upudpserver
2
//
3
//
4
/**///////////////////////////////////////
5
#ifndef _UPUDPSERVER_H_
6
#define _UPUDPSERVER_H_
7
8
#include "upudp.h"
9
10
/**//* 接受到數據觸發的業務層處理函數類型定義
11
char*---數據緩沖區指針
12
int&----數據長度,in、out參數
13
char*---client ip
14
int&----client port
15
*/
16
typedef int (*OnRecved)(char*,int&,char*,int&);
17
//線程結束處理函數
18
typedef int (*OnTerminated)();
19
20
class CUpUdpServer : public CUpBase
21

{
22
public:
23
CUpUdpServer()
24
{
25
m_onrecved = NULL;
26
m_onterminated = NULL;
27
irun_status=0;
28
}
29
~CUpUdpServer()
30
{
31
}
32
public:
33
int startserver(const char* pszip, int iport);
34
int stopserver();
35
36
//以類似于屬性的方式公開并且使用,仿IDE的事件
37
public:
38
OnRecved m_onrecved;
39
OnTerminated m_onterminated;
40
41
protected:
42
43
private:
44
static void* thread_recv(void* pvoid);
45
private:
46
pthread_t m_thread_recv;
47
sem_t m_sem_recv_control;
48
CUpSocketUdp m_udpsocket;
49
int irun_status;
50
51
};
52
53
#endif //_UPUDPSERVER_H_
54

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

54

posted on 2010-12-14 11:34 changup 閱讀(2148) 評論(1) 編輯 收藏 引用 所屬分類: 高性能服務器實踐 、隨想