blocksock.h

来自「MPEG4网络视频服务器客户端图象监控软件」· C头文件 代码 · 共 70 行

H
70
字号
/********************************************************************
	created:	2002/07/28
	created:	28:7:2002   22:57
	filename: 	E:\WORK\0730\DvsServer\BlockSock.h
	file path:	E:\WORK\0730\DvsServer
	file base:	BlockSock
	file ext:	h
	author:		Sun_J
	
	purpose:	blocking socket
*********************************************************************/

#if !defined(AFX_MSGSOCK_H__DEE8208E_81D6_436F_9FFF_905CBC24D531__INCLUDED_)
#define AFX_MSGSOCK_H__DEE8208E_81D6_436F_9FFF_905CBC24D531__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define		TCP_CONNECT_ERROR	0x10000001
#define		TCP_CREATE_ERROR	0x10000002
#define		TCP_LISTEN_ERROR	0x10000003
#define		TCP_SEND_TIMEOUT	0x10000004
#define		TCP_RECV_TIMEOUT	0x10000005
#define		TCP_SEND_ERROR		0x10000006
#define		TCP_RECV_ERROR		0x10000007	

#include <winsock2.h>
#pragma comment(lib, "Ws2_32.lib")

class CBlockSocket
{

public:
	SOCKET	m_hSocket;
	DWORD	m_dwError;

public:
	CBlockSocket();
	~CBlockSocket();

public:
	static BOOL	InitSocket();
	BOOL	Create(	UINT nSocketPort	= 0,
					BOOL bBound			= 1,
					LPCTSTR lpAddress	= NULL,
					int	nSocketType		= SOCK_STREAM);
	BOOL	Listen();
	BOOL	Accept(	CBlockSocket& rcSocket,
					SOCKADDR* lpSockAddr	= NULL,
					int* lpSockAddLen		= NULL);
	BOOL	Connect(LPCTSTR lpszHost, UINT uiHostPort);
	BOOL	SendProc(const void* lpBuf, int nBufLen, int nFlags = 0);
	BOOL	RecvProc(const void* lpBuf, int nBufLen, int nFlags = 0);
	VOID	Close();
	VOID	SetTimeOut(int s = 10, int ms = 0);

	//2001 12 6
	BOOL	IsValid();
	BOOL	GetPeerName(CString& rName, UINT& nPort);
private:
	BOOL	Socket(int nSocketType, int nProtocolType = 0, int nAddressFormat = PF_INET);
	BOOL	Bind(UINT uiSocketPort, LPCTSTR lpszSocketAddress = NULL);
	BOOL	GetPeerName(SOCKADDR* lpSockAddr, int* lpSockAddrLen);

	PTIMEVAL	tv;
};

#endif // !defined(AFX_MSGSOCK_H__DEE8208E_81D6_436F_9FFF_905CBC24D531__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?