Fetch the repository succeeded.
#pragma once
#include <iostream>
#include <string>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
class InetAddr
{
public:
//构造函数
InetAddr(const struct sockaddr_in &addr):_addr(addr)
{
ToHost(addr);
}
//返回IP地址
std::string Ip()
{
return _ip;
}
//返回端口号
uint16_t Port()
{
return _port;
}
//返回IP地址+端口号
struct sockaddr_in Addr()
{
return _addr;
}
//返回IP地址+端口号的字符串形式
std::string AddrStr()
{
return _ip+" : "+std::to_string(_port);
}
//==运算符重载
bool operator==(const InetAddr& addr)
{
return (this->_ip==addr._ip&&this->_port==addr._port);
}
//析构函数
~InetAddr()
{
}
private:
void ToHost(const struct sockaddr_in &addr)
{
_port=ntohs(addr.sin_port);//端口号网络字节序转主机字节序
_ip=inet_ntoa(addr.sin_addr);//IP地址网络字节序转点分十进制字符串
}
private:
uint16_t _port;
std::string _ip;
struct sockaddr_in _addr;
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。