📄 lsocket.h
字号:
// LSocket.h: interface for the CLSocket class.
//program by bigbencat
//mail to:liguangyu@china.com
//随便使用,随便修改,接口基本上和 MFC CSocket 相同,不需要MFC支持,
//适合 work thread
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_LSOCKET_H__2FB6E9E0_537E_4BC8_B5D3_0425206B3954__INCLUDED_)
#define AFX_LSOCKET_H__2FB6E9E0_537E_4BC8_B5D3_0425206B3954__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define _WINSOCKAPI_
#include <WinSock2.h>
#pragma comment(lib, "ws2_32.lib")
class CLSocket
{
public:
BOOL Create(UINT nSocketPort = 0, int nSocketType=SOCK_STREAM,
long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE,
LPCTSTR lpszSocketAddress = NULL);
void operator=(const CLSocket& rSrc);
virtual void Close();
virtual int Receive(void* lpBuf, int nBufLen, int nFlags = 0);
virtual int Send(const void* lpBuf, int nBufLen, int nFlags = 0);
BOOL Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress = NULL);
BOOL Connect(LPCTSTR lpszHostAddress, UINT nHostPort);
BOOL Listen(int nConnectionBacklog=5);
virtual BOOL Accept(CLSocket& rConnectedSocket,
SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL);
protected:
virtual void OnReceive(int nErrorCode);
virtual void OnSend(int nErrorCode);
virtual void OnOutOfBandData(int nErrorCode);
virtual void OnAccept(int nErrorCode);
virtual void OnConnect(int nErrorCode);
virtual void OnClose(int nErrorCode);
public:
BOOL ConnectWithProxy(LPCTSTR lpszHostAddress,UINT nHostPort,LPCTSTR lpszProxyAddress,UINT nProxyPort);
void SetProxy(const char *szIP,long lPort);
BOOL Run(long lTimeout=0);
SOCKET m_hSocket;
CLSocket();
virtual ~CLSocket();
private:
BOOL Select();
WSAEVENT m_hEvent[1];// HANDLE of 网络事件
void InitSocketSystemOnce();
char* TranslateSocketError(long lErrNO=-1);
long m_lEvent;
char m_szProxyIP[20];
long m_lProxyPort;
char m_szError[200];
};
#endif // !defined(AFX_LSOCKET_H__2FB6E9E0_537E_4BC8_B5D3_0425206B3954__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -