📄 csock.h
字号:
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::gethostname(name, namelen);}
#endif
PPROTOENT getprotobyname(LPCSTR name)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::getprotobyname(name);}
#endif
PPROTOENT getprotobynumber(int number)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::getprotobynumber(number);}
#endif
PSERVENT getservbyname(LPCSTR name, LPCSTR proto)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::getservbyname(name, proto);}
#endif
PSERVENT getservbyport(int port, LPCSTR proto)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::getservbyport(port, proto);}
#endif
//
//MS Extensions
//
HANDLE WSAAsyncGetHostByAddr(HWND hWnd,
unsigned int wMsg,
LPCSTR addr,
int len,
int type,
LPTSTR buf,
int buflen)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAAsyncGetHostByAddr(hWnd, wMsg, addr, len, type, buf, buflen);}
#endif
HANDLE WSAAsyncGetHostByName(HWND hWnd,
unsigned int wMsg,
LPCSTR name,
LPTSTR buf,
int buflen)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAAsyncGetHostByName(hWnd, wMsg, name, buf, buflen);}
#endif
HANDLE WSAAsyncGetProtoByName(HWND hWnd,
unsigned int wMsg,
LPCSTR name,
LPTSTR buf,
int buflen)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAAsyncGetProtoByName(hWnd, wMsg, name, buf, buflen);}
#endif
HANDLE WSAAsyncGetProtoByNumber( HWND hWnd,
unsigned int wMsg,
int number,
LPTSTR buf,
int buflen)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAAsyncGetProtoByNumber(hWnd, wMsg, number, buf, buflen);}
#endif
HANDLE WSAAsyncGetServByName(HWND hWnd,
unsigned int wMsg,
LPCSTR name,
LPCSTR proto,
LPTSTR buf,
int buflen)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAAsyncGetServByName(hWnd, wMsg, name, proto, buf, buflen);}
#endif
HANDLE WSAAsyncGetServByPort(HWND hWnd,
unsigned int wMsg,
int port,
LPCSTR proto,
LPTSTR buf,
int buflen)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAAsyncGetServByPort(hWnd, wMsg, port, proto, buf, buflen);}
#endif
int WSAAsyncSelect(SOCKET s, HWND hWnd, unsigned int wMsg, long lEvent)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAAsyncSelect(s, hWnd, wMsg, lEvent);}
#endif
int WSAAsyncSelect(HWND hWnd, unsigned int wMsg, long lEvent)
{return WSAAsyncSelect(m_sockCurrentSocket, hWnd, wMsg, lEvent);}
int WSACancelAsyncRequest(HANDLE hAsyncTaskHandle)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSACancelAsyncRequest(hAsyncTaskHandle);}
#endif
int WSACancelBlockingCall(void)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSACancelBlockingCall();}
#endif
int WSACleanup(void)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSACleanup();}
#endif
int WSAGetLastError(void)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAGetLastError();}
#endif
BOOL WSAIsBlocking(void)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAIsBlocking();}
#endif
FARPROC WSASetBlockingHook(FARPROC lpBlockFunc)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSASetBlockingHook(lpBlockFunc);}
#endif
void WSASetLastError(int iError)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{::WSASetLastError(iError);}
#endif
int WSAStartup(WORD wVersionRequired, LPWSADATA lpWSAData)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAStartup(wVersionRequired, lpWSAData);}
#endif
int WSAUnhookBlockingHook(void)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSAUnhookBlockingHook();}
#endif
#ifdef _DEBUG
void PrintError(int ErrorCode);
void PrintError(void) {PrintError(WSAGetLastError());}
#ifdef _AFX
CString StringError(int ErrorCode);
CString StringError(void) {return StringError(WSAGetLastError());}
#else
TCHAR *StringError(int ErrorCode);
TCHAR *StringError(void) {return StringError(WSAGetLastError());}
#endif //_AFX
#else
void PrintError(int ErrorCode) {;}
void PrintError(void) {PrintError(WSAGetLastError());}
#ifdef _AFX
CString StringError(int ErrorCode) {CString retString; return retString;}
CString StringError(void) {return StringError(WSAGetLastError);}
#endif //_AFX
#endif
//
//Win32 Specific
//
#ifdef WIN32
// ReadFile()
// WriteFile()
// _open_osf_handle()
// _fdopen()
// _read()
// _write()
// fprintf()
// fscanf()
#ifdef WSARECVEX
int WSARecvEx(SOCKET s, LPTSTR buf, int len, int *flags)
#ifdef _DEBUG
; // Implement in csock.cpp for debug info
#else
{return ::WSARecvEx(s, buf, len, flags);}
#endif
int WSARecvEx(LPTSTR buf, int len, int *flags)
{return ::WSARecvEx(m_sockCurrentSocket, buf, len, flags);}
#endif
#endif //WIN32
//MFC specific implementation
#ifdef _AFX
unsigned long inet_addr(CString cp)
{return inet_addr((LPCSTR)cp);}
int send(SOCKET s, CString buf, int flags)
{return send(s, buf, buf.GetLength(), flags);}
int sendto(SOCKET s, CString buf, int flags,
const struct sockaddr FAR *to, int tolen)
{return sendto(s, buf, buf.GetLength(), flags, to, tolen);}
struct hostent *gethostbyaddr(CString addr, int type)
{return gethostbyaddr(addr, addr.GetLength(), type);}
struct hostent *gethostbyname(CString name)
{return gethostbyname(name);}
int gethostname(CString name){
LPTSTR p = name.GetBuffer(128);
int iret = gethostname(p, 128);
name.ReleaseBuffer(-1);
return iret;
}
struct protoent *getprotobyname(CString name)
{return getprotobyname((LPCSTR)name);}
struct servent *getservbyname(CString name, CString proto)
{return getservbyname((LPCSTR)name, (LPCSTR)proto);}
struct servent *getservbyport(int port, CString proto)
{return getservbyport(port, (LPCSTR)proto);}
#endif
public:
#ifdef WS_USE_REGISTERED_WINDOW_MSGS
static UINT m_WSA_EVENT;
static UINT m_WSA_READ;
static UINT m_WSA_WRITE;
static UINT m_WSA_ACCEPT;
static UINT m_WSA_CONNECT;
static UINT m_WSA_CLOSE;
static UINT m_WSA_OOB;
#endif
protected:
SOCKET m_sockCurrentSocket;
enumSocketState m_eCurrentSocketState;
SOCKADDR_IN m_SockAddrIn;
private:
static unsigned long m_ulCWinSockInitialized;
static BOOL m_bRegisteredWinSockMsgs;
WSADATA m_wsaData;
#ifdef _DEBUG
int m_iLastError; //Last error
#endif
public:
enumSocketState GetCurrentSocketState(void) {return m_eCurrentSocketState;}
int GetMaxSockets(void) {return m_wsaData.iMaxSockets;}
};
const unsigned int WSA_EVENT (WM_USER+1);
const unsigned int WSA_READ ((WSA_EVENT)+1);
const unsigned int WSA_WRITE ((WSA_READ)+1);
const unsigned int WSA_ACCEPT ((WSA_WRITE)+1);
const unsigned int WSA_CONNECT ((WSA_ACCEPT)+1);
const unsigned int WSA_CLOSE ((WSA_CONNECT)+1);
const unsigned int WSA_OOB ((WSA_CLOSE)+1);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -