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
|
| #ifndef _TCP_H_
| #define _TCP_H_
|
| #include <winsock.h>
| #include <string>
| #include <afxmt.h>
|
| #define MVSOL_TCP_CONNECTION_CHANGED (WM_USER + 0x1000)
|
| namespace mvsol
| {
| class TcpSocket
| {
| public:
| TcpSocket(HWND parent);
| ~TcpSocket();
|
| enum
| {
| kConnected = 0,
| kDisconnected,
| };
|
| static const INT BUFFERSIZE = 1024;
|
| BOOL Connect(const CString& ip, INT port);
| BOOL Disconnect();
|
| protected:
| BOOL Create();
| void Close();
|
| int SendWait(PBYTE indata, INT indatasize, PBYTE outdata, PINT outdatasize);
|
| private:
| int Send(const PBYTE indata, INT indatasize);
| int Receive(PBYTE outdata, INT* outdatasize);
|
| //¼Ó¼º
| public:
| void SetParent(HWND parent) { parent_ = parent; }
|
| BOOL IsConnected() const { return isconnected_; }
| BOOL IsCreated() const { return iscreated_; }
|
| protected:
| WSAData wsadata_;
|
| BOOL iscreated_;
| BOOL isconnected_;
| sockaddr_in server_;
| sockaddr_in local_;
|
| SOCKET socket_;
|
| HWND parent_;
|
| CCriticalSection cs_;
| };
|
| } // namespace mvsol
|
| #endif // _TCP_H_
|
|