1 ///////////////////////////////////////
\r
11 class CServerSocket;
\r
12 class CTCPClientDlg;
\r
14 typedef Shared_Ptr<CServerSocket> ServerSocketPtr;
\r
15 typedef Shared_Ptr<CTCPClientDlg> TCPClientDlgPtr;
\r
17 // Declaration of the CTCPClientDlg class
\r
18 class CTCPClientDlg : public CDialog
\r
21 CTCPClientDlg(UINT nResID, CWnd* pParent = NULL);
\r
22 virtual ~CTCPClientDlg() {}
\r
23 virtual INT_PTR DialogProc (UINT uMsg, WPARAM wParam, LPARAM lParam);
\r
24 virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
\r
25 virtual BOOL OnInitDialog();
\r
26 void Append(int nID, LPCTSTR buf);
\r
30 ServerSocketPtr m_pSocket;
\r
33 // Nested classes for this dialog's child windows
\r
34 // Nesting is optional. Its done to keep the IDE's class view tidy.
\r
35 class CEditSend : public CEdit {};
\r
36 class CEditReceive : public CEdit {};
\r
37 class CButtonSend : public CButton {};
\r
39 CEditSend m_EditSend;
\r
40 CEditReceive m_EditReceive;
\r
41 CButtonSend m_ButtonSend;
\r
45 // Declaration of the CSvrDialog class
\r
46 class CSvrDialog : public CDialog
\r
49 CSvrDialog(UINT nResID, CWnd* pParent = NULL);
\r
50 virtual ~CSvrDialog();
\r
51 void Append(int nID, LPCTSTR buf);
\r
52 void LoadCommonControlsEx();
\r
53 void OnSocketDisconnect(CServerSocket* pClient);
\r
54 void OnSocketReceive(CServerSocket* pClient);
\r
55 void OnSocketAccept();
\r
57 void OnStartServer();
\r
62 virtual BOOL OnInitDialog();
\r
63 virtual INT_PTR DialogProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
\r
64 virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
\r
67 CServerSocket m_MainSocket;
\r
68 std::map<ServerSocketPtr, TCPClientDlgPtr> m_ConnectedClients;// Stores TCP client sockets and TCP client dialogs
\r
69 BOOL m_bServerStarted;
\r
70 int m_SocketType; // either SOCK_STREAM or SOCK_DGRAM
\r
71 sockaddr_in6 m_saUDPClient; // connected UPD client's sockaddr
\r
73 // Nested classes for this dialog's child windows
\r
74 // Nesting is optional. Its done to keep the IDE's class view tidy.
\r
75 class CIP4Address : public CWnd {};
\r
76 class CEditIP6Address : public CEdit {};
\r
77 class CEditStatus : public CEdit {};
\r
78 class CEditPort : public CEdit {};
\r
79 class CEditSend : public CEdit {};
\r
80 class CEditReceive : public CEdit {};
\r
81 class CButtonStart : public CButton {};
\r
82 class CButtonSend : public CButton {};
\r
83 class CRadioIP4 : public CButton {};
\r
84 class CRadioIP6 : public CButton {};
\r
85 class CRadioTCP : public CButton {};
\r
86 class CRadioUDP : public CButton {};
\r
88 CIP4Address m_IP4Address;
\r
89 CEditIP6Address m_EditIP6Address;
\r
90 CEditStatus m_EditStatus;
\r
91 CEditPort m_EditPort;
\r
92 CEditSend m_EditSend;
\r
93 CEditReceive m_EditReceive;
\r
94 CButtonStart m_ButtonStart;
\r
95 CButtonSend m_ButtonSend;
\r
96 CRadioIP4 m_RadioIP4;
\r
97 CRadioIP6 m_RadioIP6;
\r
98 CRadioTCP m_RadioTCP;
\r
99 CRadioUDP m_RadioUDP;
\r
103 #endif //SVRDIALOG_H
\r