文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>udp_socket的封装

udp_socket的封装

时间:2010-05-17  来源:jazeltq

//udpserversocket.h
// ##### typedef zint32    SOCKET;


typedef void (*CALLBACK_RECV)(void *pThis, SOCKET sock, char *pData, zint32 iSize, sockaddr_in addr, zint32 addrLen);

class CUDPServerSocket
   : public  ZBaseThread
{
    public:
      CUDPServerSocket();
      ~CUDPServerSocket();
      void SetHostIP(std::string strIp);
      void SetHostPort(zuint16 usPort);
      void SetRecvCallBack(CALLBACK_RECV onRecv);
      void SetObjPointer(void *pThis);
      bool SendDataToDes(char * buf, zint32 bufLen, const sockaddr_in & toaddr);

      bool Init();
      void Close();

    private:
      virtual void OnThreadProc();
      std::string m_strIp;
      zuint16     m_usPort;
      bool        m_ssActive;
     
      CALLBACK_RECV   mfn_Recv;
      void *      m_pThis;
      SOCKET      m_serverSock;
      sockaddr_in GetNetAddr();

      char        sendBuf[BUF_LEN];
      char        msgBuf[MAX_MSG_LEN];
};

以上仅是提供一个思路, 具体的实现看你自己了, 你也可以提出自己的server类, 关键看你的需求是什么, 要实现什么之前,最起码知道你想要什么吧.

class CUDPCLientSocket
   : public ZBaseThread
{
    public:
       CUDPClientSocket();
       ~CUDPClientSocket();

       void SetRemoteAddr(std::string strIp, zuint16 usPort);
       void SetRecvCallBack(CALLBACK_RECV  onRecv);
       void SetObjPointer(void * pThis);
       bool Init();
       bool SendDataToServer(char * buf, zint32 bufLen);
       bool SendDataToDes(char * buf, zint32 bufLen, sockaddr_in toaddr);
       void Close();

    private:
       virtual void OnThreadProc();
       std::string m_strIp;
       zuint16     m_usPort;
       bool        m_csActive;
      
       void *      m_pThis;
       sockaddr_in m_serverAddr;
       CALLBACK_RECV   mfn_Recv;
       SOCKET      m_clientSock;
       sockaddr_in   GetNetAddr();
};

这个类是连接到服务器的客户端的抽象

class UDPSender_c
{
   public:
      UdpSender_c();
      ~UdpSender_c();
     
      bool SendDataToDes(char * buf, zint32 bufLen, const sockaddr_in & toaddr);
  
    private:
      SOCKET  _sock;
      char    sendBuf[BUF_LEN];
};

相关阅读 更多 +
排行榜 更多 +
斗虫公园手机版下载

斗虫公园手机版下载

休闲益智 下载
武林外传之同福奇缘手机版下载

武林外传之同福奇缘手机版下载

角色扮演 下载
无畏契约源能行动小米服手游下载

无畏契约源能行动小米服手游下载

飞行射击 下载