📄 clientthread.h
字号:
#if !defined(AFX_CLIENTTHREAD_H__890AB2C9_429F_11D4_93A3_0000E86DCAD8__INCLUDED_)
#define AFX_CLIENTTHREAD_H__890AB2C9_429F_11D4_93A3_0000E86DCAD8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ClientThread.h : header file
//
#include "TCPSocket.h"
//定义错误消息
#define CLIENT_ERROR_NOERROR 0 //没有错误
#define CLIENT_ERROR_CREATE 1 //创建失败
#define CLIENT_ERROR_CONNECT 2 //连接失败
#define CLIENT_ERROR_CONNECT_TIMEOUT 3 //连接超时
#define CLIENT_ERROR_READ 4 //接受数据出错
#define CLIENT_ERROR_WRITE 5 //写出错
#define CLIENT_ERROR_SERVER_CLOSE 6 //对方关闭
#define CLIENT_ERROR_RESET 7 //电路reset
//定义状态
#define CLIENT_ORIGIN 0 //原始状态
#define CLIENT_CREATE 1 //正创建
#define CLIENT_CONNECTING 2 //等待连接
#define CLIENT_WAITING 3 //等待数据
#define CLIENT_READING 4 //读数据
#define CLIENT_WRITING 5 //写数据
#define CLIENT_QUITING 6 //正在等待退出
#define CLIENT_CLOSED 7 //关闭
//线程必须处理SOCKET传来的消息
//SOCKET_THREAD_CONNECT, SOCKET_THREAD_READ等
/////////////////////////////////////////////////////////////////////////////
// CClientThread thread
class CClientThread : public CWinThread
{
DECLARE_DYNCREATE(CClientThread)
protected:
CClientThread(); // protected constructor used by dynamic creation
public:
CClientThread(CString szHost, UINT nPort, BOOL bUseProxy, HWND hWnd, HWND hFinalWnd);
// Attributes
public:
// Operations
public:
int GetLastError();
void KillThread();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CClientThread)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
//}}AFX_VIRTUAL
// Implementation
public:
BOOL ChangeHandle();
CString GetHost();
SOCKET GetSocket();
HANDLE m_hWaitEvent;
void OnSocketConnect();
virtual ~CClientThread();
// Generated message map functions
//{{AFX_MSG(CClientThread)
// NOTE - the ClassWizard will add and remove member functions here.
afx_msg void OnSocketRead(WPARAM wParam, LPARAM lParam);
afx_msg void OnSocketWrite(WPARAM wParam, LPARAM lParam);
afx_msg void OnSocketClose(WPARAM wParam, LPARAM lParam);
afx_msg void OnThreadData(WPARAM wParam, LPARAM lParam );
afx_msg void OnThreadQuit(WPARAM wParam, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
HWND m_hFinalWnd;
BOOL m_bUseProxy;
int m_bState;
int nErrorCode;
CTCPSocket m_cTCPSocket;
CString m_szHost; //主机名称
UINT m_nPort; //端口
HWND m_hMainWnd;
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CLIENTTHREAD_H__890AB2C9_429F_11D4_93A3_0000E86DCAD8__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -