UDPSocket.h
上传用户:oldpeter23
上传日期:2013-01-09
资源大小:1111k
文件大小:2k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. /*------------------------------------------------------------------------------*
  2.  =============================
  3.    模块名称: UDPSocket.h
  4.  =============================
  5.  [目的]
  6.  
  7.    方便UDP的使用
  8.  [描述]
  9.  
  10.    这是一个封装了UDP数据报传送的基类,功能比较基本,可以从它派生以扩展功能。这
  11.    个类并不是所有SOCKET函数的封装,而只是封装了一些用得比较多,并且使用较麻烦的
  12.    函数。
  13.  
  14.  [用法]
  15.  
  16.    这个模块用法很简单,如果有问题可参阅MSDN. :-)
  17.  [依赖性]
  18.    库
  19.    ws2_32.lib
  20.    
  21.  [修改记录]
  22.  
  23.   日期:     01-10-11  
  24.   版本:     1.01       
  25.   作者:     Brant Q
  26.   备注:
  27.     
  28.  [版权]
  29.   2000-2002  115软件工厂  版权所有
  30.  [声明]
  31.      
  32.      
  33.                                               
  34. *------------------------------------------------------------------------------*/
  35. #ifndef _UDPSOCKET_H_
  36. #define _UDPSOCKET_H_
  37. #define MAX_UDP_SIZE   4096
  38. WORD InitializeSocket();
  39. int CleanUpSocket();
  40. class CUDPSocket
  41. {
  42. public:
  43. BOOL IsSocket();
  44. CUDPSocket();
  45. virtual ~CUDPSocket();
  46. BOOL Create(UINT uSocketPort=0,char* pszSockAddr=NULL);
  47. int Destroy();
  48. int SendTo(const char *pBuf,int iLen,char* pszRemoteSockAddr,unsigned short uPort) const;
  49. int SendTo(const char *pBuf,int iLen,SOCKADDR* pRemoteAddr=NULL) const;
  50. int RecvFrom(char *pBuf,int iLen,SOCKADDR* pRemoteAddr=NULL) const;
  51. SOCKADDR_IN GetLocalAddr() const;
  52. SOCKET GetSocket() const;
  53. SOCKADDR_IN GetRemoteAddr() const;
  54. SOCKADDR_IN SetRemoteAddr(const SOCKADDR_IN &NewRemoteAddr);
  55. static u_long Name2Inet(LPCSTR szAddress);
  56. static u_long GetLocal_in_addr();
  57. protected:
  58. SOCKET m_Socket;
  59. SOCKADDR_IN m_LocalAddr;
  60. SOCKADDR_IN m_RemoteAddr;
  61. private:
  62. };
  63. #endif