/
ServerSocket.h
85 lines (57 loc) · 1.52 KB
/
ServerSocket.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*
* File: ServerSocket.h
* Author: Vicky.H
* Email: eclipser@163.com
*
* Created on 2014年2月26日, 下午8:43
*/
#ifndef CN_VICKY__SERVERSOCKET_H
#define CN_VICKY__SERVERSOCKET_H
#include "Socket.h"
class ServerSocket {
public:
// constructor
ServerSocket(unsigned int port, unsigned int backlog = 5);
// destructor
~ServerSocket();
public:
// close socket
void close();
// accept new connection
bool accept(Socket* socket);
// get/set socket's linger status
unsigned int getLinger() {
return m_Socket->getLinger();
}
void setLinger(unsigned int lingertime) {
m_Socket->setLinger(lingertime);
}
// get/set socket's nonblocking status
bool isNonBlocking() const {
return m_Socket->isNonBlocking();
}
void setNonBlocking(bool on = true) {
m_Socket->setNonBlocking(on);
}
// get/set receive buffer size
unsigned int getReceiveBufferSize() const {
return m_Socket->getReceiveBufferSize();
}
void setReceiveBufferSize(unsigned int size) {
m_Socket->setReceiveBufferSize(size);
}
// get/set send buffer size
unsigned int getSendBufferSize() const {
return m_Socket->getSendBufferSize();
}
void setSendBufferSize(unsigned int size) {
m_Socket->setSendBufferSize(size);
}
SOCKET getSOCKET() {
return m_Socket->getSOCKET();
}
protected:
// socket implementation object
Socket* m_Socket;
};
#endif /* CN_VICKY__SERVERSOCKET_H */