#ifndef _TCP_H_ #define _TCP_H_ #include #include #include #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_