+++ /dev/null
-// SmartSock.h: CSmartSock \83N\83\89\83X\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X\r
-//\r
-//////////////////////////////////////////////////////////////////////\r
-\r
-#pragma once\r
-\r
-#include "W2L.h"\r
-#include <sys/socket.h>
-#include <fcntl.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <unistd.h>
-#include <errno.h>
-\r
-#define BOOL bool
-#define LPTSTR char*
-#define LPCTSTR const char*
-#define LPCSTR const char*
-#define BYTE unsigned char
-#define WORD unsigned short
-#define DWORD unsigned long
-#define SOCKET int
-\r
-// WinSock2\83^\83C\83\80\83A\83E\83g\91Î\89\9e\83\89\83b\83p\81[\83N\83\89\83X http://2sen.dip.jp/friio/\r
-class CSmartSock\r
-{\r
-public:\r
- enum // LastError\83R\81[\83h\r
- {\r
- EC_NOERROR, // \90³\8fí\8fI\97¹\r
- EC_SOCKERROR, // \83\\83P\83b\83g\83G\83\89\81[\r
- EC_TIMEOUT, // \83^\83C\83\80\83A\83E\83g\r
- EC_SOCKINVALID, // \83\\83P\83b\83g\82ª\96³\8cø\r
- EC_PARAMINVALID // \83p\83\89\83\81\81[\83^\82ª\96³\8cø\r
- };\r
-\r
- CSmartSock();\r
- virtual ~CSmartSock();\r
-\r
-// TCP\83\\83P\83b\83g\r
- const BOOL Connect(LPCTSTR lpszHost, const WORD wPort, const DWORD dwTimeOut = 0UL);\r
- const BOOL Connect(const DWORD dwIP, const WORD wPort, const DWORD dwTimeOut = 0UL);\r
-\r
- const BOOL Listen(const WORD wPort);\r
- CSmartSock * Accept(void);\r
-\r
- const BOOL Send(const BYTE *pBuff, const DWORD dwLen, const DWORD dwTimeOut = 0UL);\r
- const BOOL Recv(BYTE *pBuff, const DWORD dwLen, const DWORD dwTimeOut = 0UL);\r
- const DWORD SendOnce(const BYTE *pBuff, const DWORD dwMaxLen, const DWORD dwTimeOut = 0UL);\r
- const DWORD RecvOnce(BYTE *pBuff, const DWORD dwMaxLen, const DWORD dwTimeOut = 0UL);\r
-\r
- const BOOL GetLocalAddr(DWORD *pdwIP, WORD *pwPort = NULL);\r
- const BOOL GetPeerAddr(DWORD *pdwIP, WORD *pwPort = NULL);\r
-\r
-// UDP\83\\83P\83b\83g\r
- const BOOL Bind(void);\r
-\r
- const DWORD SendTo(const DWORD dwIP, const WORD wPort, const BYTE *pBuff, const DWORD dwLen);\r
- const DWORD SendTo(LPCTSTR lpszHost, const WORD wPort, const BYTE *pBuff, const DWORD dwLen);\r
- const DWORD RecvFrom(BYTE *pBuff, const DWORD dwLen, DWORD *pdwIP = NULL, WORD *pwPort = NULL);\r
-\r
- const BOOL Close(void);\r
-\r
- static const DWORD HostToIP(LPCTSTR lpszHost);\r
- static const DWORD IPToHost(LPTSTR lpszHost, const DWORD dwIP);\r
-\r
- const DWORD GetLastError(void) const;\r
-\r
-protected:\r
- static const BOOL InitWinSock2(void);\r
- static const BOOL FreeWinSock2(void);\r
-\r
- enum {SOCKTYPE_NON, SOCKTYPE_TCP, SOCKTYPE_UDP};\r
-\r
- int m_Socket; // \83\\83P\83b\83g\83n\83\93\83h\83\8b\r
- BYTE m_bSockType; // \83\\83P\83b\83g\83^\83C\83v\r
- DWORD m_dwLastError; // \8dÅ\8fI\83G\83\89\81[\83R\81[\83h\r
- static DWORD dwInstanceNum; // \83C\83\93\83X\83^\83\93\83X\82Ì\90\94\r
-};\r