ReplicaNet and RNLobby  1
NATDetectServer.h
1 /* START_LICENSE_HEADER
2 
3 Copyright (C) 2000 Martin Piper, original design and program code
4 Copyright (C) 2001 Replica Software
5 
6 This program file is copyright (C) Replica Software and can only be used under license.
7 For more information visit: http://www.replicanet.com/
8 Or email: info@replicanet.com
9 
10 END_LICENSE_HEADER */
11 #include "RNPlatform/Inc/MemoryTracking.h"
12 #ifndef _NATDETECTSERVER_H_
13 #define _NATDETECTSERVER_H_
14 #include "RNLobby/Inc/BaseServer.h"
15 
16 namespace RNReplicaNet
17 {
18 
19 namespace RNLobby
20 {
21 
28 {
29 public:
31  virtual ~NATDetectServer();
32 
33  enum Reply
34  {
35  kReply_Pending = 0,
36  kReply_Success,
37  kReply_Timeout
38  };
39  enum
40  {
41  kDefaultPort = 4004,
42  kDefaultPortOther = 4005
43  };
44 
45  bool Start(const XPAddress &address = XPAddress(kDefaultPort),const XPAddress &addressOther = XPAddress(kDefaultPortOther));
46 
47  virtual void CallbackGotNATDetectProbe(const XPAddress &address) const {};
48 
49 private:
50  bool CallbackParseValidMessage(DynamicMessageHelper &message,const size_t length,const XPAddress &address);
51 
52  void CallbackTidy(void);
53 
54  t_XPSocket *mOtherSocket;
55 };
56 
57 } // namespace RNLobby
58 
59 } // namespace RNReplicaNet
60 
61 #endif
Definition: XPSocket.h:91
Definition: NATDetectServer.h:27
Definition: XPSocket.h:167
Definition: MessageHelper.h:211
A server base class that handles encrypted messages to and from a socket.
Definition: BaseServer.h:24