2024-12-23 19:13:35 +08:00
|
|
|
#pragma once
|
|
|
|
#include <cstdint>
|
|
|
|
#include <string>
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#include <sys/socket.h>
|
|
|
|
namespace tinyrpc {
|
|
|
|
|
|
|
|
class NetAddress {
|
|
|
|
|
|
|
|
public:
|
2024-12-25 19:40:27 +08:00
|
|
|
NetAddress() = default;
|
2024-12-23 19:13:35 +08:00
|
|
|
NetAddress(const std::string ip, uint16_t port);
|
|
|
|
NetAddress(uint16_t port);
|
|
|
|
NetAddress(const sockaddr_in* addr);
|
|
|
|
std::string toString() const;
|
|
|
|
const sockaddr* getSockaddr() const {
|
|
|
|
return reinterpret_cast<const sockaddr*>(&m_addr_in);
|
|
|
|
}
|
|
|
|
socklen_t getSockLen() const {return sizeof m_addr_in;}
|
|
|
|
~NetAddress();
|
|
|
|
|
|
|
|
|
|
|
|
static bool checkIpString(const std::string& ip);
|
|
|
|
private:
|
2025-01-14 15:27:15 +08:00
|
|
|
std::string m_ip{"0.0.0.0"};
|
|
|
|
uint16_t m_port{9001};
|
2024-12-23 19:13:35 +08:00
|
|
|
sockaddr_in m_addr_in{};
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|