www.pudn.com > vc-network-communication.rar > UDPSocket.h


/*------------------------------------------------------------------------------*\ 
 ============================= 
   模块名称: UDPSocket.h 
 ============================= 
 
 [目的] 
  
   方便UDP的使用 
 
 [描述] 
  
   这是一个封装了UDP数据报传送的基类,功能比较基本,可以从它派生以扩展功能。这 
   个类并不是所有SOCKET函数的封装,而只是封装了一些用得比较多,并且使用较麻烦的 
   函数。 
  
 [用法] 
  
   这个模块用法很简单,如果有问题可参阅MSDN. :-) 
 
 [依赖性] 
 
   库 
   ws2_32.lib 
    
 [修改记录] 
  
  日期:     01-10-11   
  版本:     1.01        
  作者:     Brant Q 
  备注: 
    	 
 [版权] 
	 
	  2000-2002  115软件工厂  版权所有 
 
 [声明] 
      
	      
                                               
\*------------------------------------------------------------------------------*/ 
#ifndef _UDPSOCKET_H_ 
#define _UDPSOCKET_H_ 
#define MAX_UDP_SIZE   4096 
WORD InitializeSocket(); 
 
int CleanUpSocket(); 
 
class CUDPSocket 
{ 
public: 
	BOOL IsSocket(); 
	 
 
	CUDPSocket(); 
	virtual ~CUDPSocket(); 
	 
	BOOL Create(UINT uSocketPort=0,char* pszSockAddr=NULL); 
	int Destroy(); 
 
	int SendTo(const char *pBuf,int iLen,char* pszRemoteSockAddr,unsigned short uPort) const; 
	int SendTo(const char *pBuf,int iLen,SOCKADDR* pRemoteAddr=NULL) const; 
	 
	int RecvFrom(char *pBuf,int iLen,SOCKADDR* pRemoteAddr=NULL) const; 
	 
	SOCKADDR_IN GetLocalAddr() const; 
	SOCKET GetSocket() const; 
	 
	SOCKADDR_IN GetRemoteAddr() const; 
	SOCKADDR_IN SetRemoteAddr(const SOCKADDR_IN &NewRemoteAddr); 
 
		 
	static u_long Name2Inet(LPCSTR szAddress); 
	static u_long GetLocal_in_addr(); 
 
protected: 
	 
	 
	SOCKET m_Socket; 
	SOCKADDR_IN m_LocalAddr; 
	SOCKADDR_IN m_RemoteAddr; 
	 
private: 
 
}; 
 
 
#endif