📄 sockutil.cpp
字号:
/****************************************************************************/
/* FILE */
/* */
/* SockUtil */
/* */
/* DESCRIPTION */
/* */
/* Implementation of the CSockUtil class.
/* */
/****************************************************************************/
#include "stdafx.h"
#include <windowsx.h>
#include <winsock.h>
#include "SockUtil.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMsg
IMPLEMENT_DYNCREATE(CSockUtil, CObject)
/////////////////////////////////////////////////////////////////////////////
// CMsg construction/destruction
CSockUtil::CSockUtil()
{
}
CSockUtil::~CSockUtil()
{
}
/////////////////////////////////////////////////////////////////////////////
// CSockUtil Operations
/*******************************************************************
NAME: SockerrToString
SYNOPSIS: Maps a socket error (like WSAEINTR) to a displayable
form (like "Interrupted system call").
ENTRY: serr - The error to map.
RETURNS: LPSTR - The displayable form of the error. Will be
"Unknown" for unknown errors.
Credit: MS Wormhole Sample
********************************************************************/
LPSTR CSockUtil::SockerrToString( SOCKERR serr )
{
switch( serr )
{
case WSAENAMETOOLONG :
return "Name too long";
case WSANOTINITIALISED :
return "Not initialized";
case WSASYSNOTREADY :
return "System not ready";
case WSAVERNOTSUPPORTED :
return "Version is not supported";
case WSAESHUTDOWN :
return "Can't send after socket shutdown";
case WSAEINTR :
return "Interrupted system call";
case WSAHOST_NOT_FOUND :
return "Host not found";
case WSATRY_AGAIN :
return "Try again";
case WSANO_RECOVERY :
return "Non-recoverable error";
case WSANO_DATA :
return "No data record available";
case WSAEBADF :
return "Bad file number";
case WSAEWOULDBLOCK :
return "Operation would block";
case WSAEINPROGRESS :
return "Operation now in progress";
case WSAEALREADY :
return "Operation already in progress";
case WSAEFAULT :
return "Bad address";
case WSAEDESTADDRREQ :
return "Destination address required";
case WSAEMSGSIZE :
return "Message too long";
case WSAEPFNOSUPPORT :
return "Protocol family not supported";
case WSAENOTEMPTY :
return "Directory not empty";
case WSAEPROCLIM :
return "EPROCLIM returned";
case WSAEUSERS :
return "EUSERS returned";
case WSAEDQUOT :
return "Disk quota exceeded";
case WSAESTALE :
return "ESTALE returned";
case WSAEINVAL :
return "Invalid argument";
case WSAEMFILE :
return "Too many open files";
case WSAEACCES :
return "Access denied";
case WSAELOOP :
return "Too many levels of symbolic links";
case WSAEREMOTE :
return "The object is remote";
case WSAENOTSOCK :
return "Socket operation on non-socket";
case WSAEADDRNOTAVAIL :
return "Can't assign requested address";
case WSAEADDRINUSE :
return "Address already in use";
case WSAEAFNOSUPPORT :
return "Address family not supported by protocol family";
case WSAESOCKTNOSUPPORT :
return "Socket type not supported";
case WSAEPROTONOSUPPORT :
return "Protocol not supported";
case WSAENOBUFS :
return "No buffer space is supported";
case WSAETIMEDOUT :
return "Connection timed out";
case WSAEISCONN :
return "Socket is already connected";
case WSAENOTCONN :
return "Socket is not connected";
case WSAENOPROTOOPT :
return "Bad protocol option";
case WSAECONNRESET :
return "Connection reset by peer";
case WSAECONNABORTED :
return "Software caused connection abort";
case WSAENETDOWN :
return "Network is down";
case WSAENETRESET :
return "Network was reset";
case WSAECONNREFUSED :
return "Connection refused";
case WSAEHOSTDOWN :
return "Host is down";
case WSAEHOSTUNREACH :
return "Host is unreachable";
case WSAEPROTOTYPE :
return "Protocol is wrong type for socket";
case WSAEOPNOTSUPP :
return "Operation not supported on socket";
case WSAENETUNREACH :
return "ICMP network unreachable";
case WSAETOOMANYREFS :
return "Too many references";
default :
return "Unknown";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -