libuv網絡公共庫的封裝

如下是提取libuv開發過程中UDP以及TCP的公共基類

#ifndef __CUVNETBASE__H_
#define __CUVNETBASE__H_

#include "UvBase.h"
#include "UvMutex.h"
#include <string>

class CUvNetBase : public CUvBase{
public:
    CUvNetBase();
    virtual ~CUvNetBase();

public:
    int SetNetParam(const char* pIp, unsigned short iPort);

protected:
    unsigned short musPort;
    std::string mstrIp;
    struct sockaddr_in mstLocalAddr;
};

#endif


#include "UvNetBase.h"

CUvNetBase::CUvNetBase()
{
    mstrIp = "";
    musPort = 0;
    memset(&mstLocalAddr, 0, sizeof(mstLocalAddr));
}

CUvNetBase::~CUvNetBase()
{
}

int CUvNetBase::SetNetParam(const char* pIp, unsigned short iPort) {
    if (nullptr != pIp && strlen(pIp) > 0) {
        mstrIp = pIp;
    }
   
    musPort = iPort; 
    return uv_ip4_addr(mstrIp.c_str(), iPort, &mstLocalAddr);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章