40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
//SockLi.h
|
|
#pragma once
|
|
#include <WinSock2.h>
|
|
|
|
|
|
class CSockLi
|
|
{
|
|
protected:
|
|
SOCKET m_hSocket;
|
|
public:
|
|
BOOL GetPeerName(char* rSocketAddress, UINT& rSocketPort);
|
|
BOOL GetSockName(char* rSocketAddress, UINT& rSocketPort);
|
|
BOOL Create(UINT nSocketPort = 0, int nSockType = SOCK_STREAM,
|
|
LPCTSTR lpszSocketAddress=NULL);
|
|
BOOL Accept(CSockLi& rConnectedSock, LPSTR szIp = NULL, UINT *nPort = NULL);
|
|
BOOL Connection(LPCSTR lpszHostAddress, UINT nPort);
|
|
BOOL Listen(int nConnectionBacklog = 5)
|
|
{
|
|
return !listen(m_hSocket, nConnectionBacklog);
|
|
}
|
|
int Send(const void* lpBuf, int nBufLen, int nFlags = 0)
|
|
{
|
|
return send(m_hSocket, (LPCSTR)lpBuf, nBufLen, nFlags);
|
|
}
|
|
int SendTo(const void* lpBuf, int nBufLen, UINT nHostPort, LPCSTR lpszHostAddress = NULL,
|
|
int nFlags = 0);
|
|
int Receive(void* lpBuf, int nBufLen, int nFlags = 0)
|
|
{
|
|
return recv(m_hSocket, (LPTSTR)lpBuf, nBufLen, nFlags);
|
|
}
|
|
int ReceiveFrom(void* lpBuf, int nBufLen, char* rSocketAddress, UINT& rSocketPort, int nFlags = 0);
|
|
void Close()
|
|
{
|
|
closesocket(m_hSocket);
|
|
m_hSocket = INVALID_SOCKET;
|
|
}
|
|
CSockLi();
|
|
virtual ~CSockLi();
|
|
};
|