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
36
class
NEFORCE_API
arp
{
37
private
:
38
string
iface_;
39
40
#ifdef NEFORCE_PLATFORM_WINDOWS
41
bool
opened_ =
false
;
42
#else
43
socket_base
sock_;
44
mac_address
local_mac_;
45
uint32_t
local_ip_;
46
int
ifindex_ = -1;
47
#endif
48
49
#ifdef NEFORCE_PLATFORM_LINUX
50
bool
local_info(
const
char
* iface);
51
#endif
52
53
public
:
57
arp
() =
default
;
58
62
~arp
() =
default
;
63
71
bool
open
(
const
char
* iface =
nullptr
);
72
76
void
close
() noexcept;
77
87
optional
<
mac_address
>
resolve
(const
ip_address
& target,
milliseconds
timeout
=
milliseconds
(1000));
88
};
89
// NetworkUtil
91
92
NEFORCE_END_NAMESPACE__
93
#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:48
mac_address
MAC地址封装类
定义
mac_address.hpp:84
optional
可选值类
定义
optional.hpp:70
socket_base
Socket基础类
定义
socket_base.hpp:100
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