tcpsocket.h

来自「vc源代码」· C头文件 代码 · 共 58 行

H
58
字号
 /*****************************************************************************
	Copyright (c) 2006 hangzhou yuntian, Inc.  All rights reserved.

	Filename: 	TcpSocket.h

	Function:   异步Socket类CTcpAsyncSocket:封装了各类最基本的异步通讯相关的方法

	Author:	    lzq,lvzhuqiang@trasin.net
	
	Date:		2007-06-06
*******************************************************************************/

#ifndef _TCPSOCKET_H
#define _TCPSOCKET_H

#include <afxsock.h>
//#define MULT_THREAD 1
#ifdef MULT_THREAD
#include <Afxmt.h>
#endif

class CTcpAsyncSocket  
{
public:
#ifdef MULT_THREAD
	CCriticalSection m_objLock;
#endif
	
	//unsigned short sa_family;
	BOOL     m_blCanQuit;
	SOCKET	 m_hSocket;
//	SOCKADDR_IPX m_sockAddr;
	CString  m_strClientIp;
	UINT     m_iClientPort;
	
public:
	CTcpAsyncSocket();
	virtual ~CTcpAsyncSocket();
	void	Close();
	BOOL	Bind(UINT nSocketPort, LPCTSTR lpszSocketAddress);
	BOOL	Create(UINT nSocketPort = 0, int nType=SOCK_STREAM,int nIPPROTO=IPPROTO_UDP,const char* szIPAddress=NULL);
	int		Receive(void* lpBuf, int nBufLen, int nFlags = 0);
	int		ReceiveFrom(void* lpBuf, int nBufLen, CString& rSocketAddress, UINT& rSocketPort, int nFlags =0);
	int		ReceiveFrom(void* lpBuf, int nBufLen, CString& rSocketAddress, UINT& rSocketPort, int nFlags ,int nTimeOut);
	int		Send(const void* lpBuf, int nBufLen, int nFlags = 0);
	int		SendTo( const void* lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0 );
	BOOL	Connect(LPCTSTR lpszHostAddress, UINT nHostPort);
	BOOL	IOCtl(long lCommand, DWORD* lpArgument);
	BOOL	SetNonBlockingMode(BOOL flag);
	BOOL	Listen(int nConnectionBacklog=5);
	BOOL	Accept(CTcpAsyncSocket& rConnectedSocket,
	SOCKADDR_IN* lpSockAddr = NULL, int* lpSockAddrLen = NULL);
	BOOL    Accept(CTcpAsyncSocket& rConnectedSocket,CString &strHostIp,UINT &iHostPort);

};

#endif // !defined(AFX_TCPSOCKET_H__B06292E1_54AA_11D3_A1BD_0000E83E4191__INCLUDED_)

⌨️ 快捷键说明

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