NexusForce
1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
arp.hpp
浏览该文件的文档.
1
#ifndef NEFORCE_NETWORK_UTIL_ARP_HPP__
2
#define NEFORCE_NETWORK_UTIL_ARP_HPP__
3
11
12
#include "
NeForce/core/time/duration.hpp
"
13
#include "
NeForce/network/util/mac_address.hpp
"
14
#ifdef NEFORCE_PLATFORM_LINUX
15
# include "
NeForce/network/socket_base.hpp
"
16
#endif
17
NEFORCE_BEGIN_NAMESPACE__
18
23
28
41
class
NEFORCE_API
arp
{
42
private
:
43
string
iface_;
44
45
#ifdef NEFORCE_PLATFORM_WINDOWS
46
bool
opened_ =
false
;
47
#else
48
socket_base
sock_;
49
mac_address
local_mac_;
50
uint32_t
local_ip_;
51
int
ifindex_ = -1;
52
#endif
53
54
#ifdef NEFORCE_PLATFORM_LINUX
55
bool
local_info(
const
char
* iface);
56
#endif
57
58
public
:
62
arp
() =
default
;
63
67
~arp
() =
default
;
68
76
bool
open
(
const
char
* iface =
nullptr
);
77
81
void
close
() noexcept;
82
92
optional
<
mac_address
>
resolve
(const
ip_address
& target,
milliseconds
timeout
=
milliseconds
(1000));
93
};
94
// NetworkUtil
96
// Network
98
99
NEFORCE_END_NAMESPACE__
100
#endif
// NEFORCE_NETWORK_UTIL_ARP_HPP__
arp::~arp
~arp()=default
析构函数
arp::arp
arp()=default
默认构造函数
arp::resolve
optional< mac_address > resolve(const ip_address &target, milliseconds timeout=milliseconds(1000))
解析IP地址对应的MAC地址
arp::close
void close() noexcept
关闭ARP解析器
arp::open
bool open(const char *iface=nullptr)
打开ARP解析器
ip_address
IP地址封装类
定义
ip_address.hpp:53
mac_address
MAC地址封装类
定义
mac_address.hpp:39
optional
可选值类
定义
optional.hpp:70
socket_base
Socket基础类
定义
socket_base.hpp:99
duration.hpp
持续时间类型
cv_status::timeout
@ timeout
等待超时
定义
condition_variable.hpp:35
uint32_t
unsigned int uint32_t
32位无符号整数类型
定义
types.hpp:110
milliseconds
duration< int64_t, milli > milliseconds
毫秒持续时间
定义
duration.hpp:157
mac_address.hpp
MAC地址封装类
socket_base.hpp
Socket基础类实现
include
NeForce
network
util
arp.hpp
制作者
1.16.0