Ai
1 Star 0 Fork 0

lsnmjp/code of cpp Linux 算法

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
InetAddr.hpp 1.53 KB
一键复制 编辑 原始数据 按行查看 历史
lsnmjp 提交于 2025-06-19 18:25 +08:00 . final UDP demo code
#pragma once
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "Commn.hpp"
namespace Inet_Addr
{
class InetAddr
{
private:
void Host2Net()//如果先拿到主机,我们希望转向网络
{
_net_addr.sin_family = AF_INET;
_net_addr.sin_port = ::htons(_port);
_net_addr.sin_addr.s_addr = INADDR_ANY;
}
//如果先拿到网络,我们希望将地址转向主机
void PortNet2Host()
{
_port = ::ntohs(_net_addr.sin_port);
}
void IPNet2Host()
{
char buffer[64];
_ip = ::inet_ntop(AF_INET,&_net_addr.sin_addr,buffer,sizeof(_net_addr));
}
public:
InetAddr()
{}
InetAddr(const struct sockaddr_in& net_addr):_net_addr(net_addr)//如果先拿到网络,我们希望将地址转向主机
{
PortNet2Host();
IPNet2Host();
}
InetAddr(uint16_t port):_port(port)//如果先拿到主机,我们希望将地址转向网络
{
Host2Net();
}
uint16_t GetPort(){return _port;}
std::string& GetIP(){return _ip;}
struct sockaddr* NetAddr(){return CONV(&_net_addr);}
socklen_t NetAddrLen(){return sizeof(_net_addr);}
~InetAddr(){}
private:
struct sockaddr_in _net_addr; // 网络字节标准
uint16_t _port; // 主机标准
std::string _ip; // 主机标准
};
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/lsnmjp/code-of-cpp-linux-algorithm.git
git@gitee.com:lsnmjp/code-of-cpp-linux-algorithm.git
lsnmjp
code-of-cpp-linux-algorithm
code of cpp Linux 算法
master

搜索帮助