feat: 使用静态arp处理通信
This commit is contained in:
@@ -26,6 +26,8 @@ public class NetConfig
|
||||
readonly string address;
|
||||
private IPEndPoint ep;
|
||||
|
||||
const string DEFAULT_BOARD_MAC = "12:34:56:78:9a:bc";
|
||||
|
||||
/// <summary>
|
||||
/// Initialize NetConfig client
|
||||
/// </summary>
|
||||
@@ -44,6 +46,15 @@ public class NetConfig
|
||||
this.timeout = timeout;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// [TODO:description]
|
||||
/// </summary>
|
||||
/// <returns>[TODO:return]</returns>
|
||||
public async ValueTask<bool> Init()
|
||||
{
|
||||
return await Arp.CheckOrAddAsync(this.address, DEFAULT_BOARD_MAC);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set host IP address
|
||||
/// </summary>
|
||||
@@ -55,11 +66,11 @@ public class NetConfig
|
||||
MsgBus.UDPServer.ClearUDPData(this.address, this.taskID);
|
||||
|
||||
// 刷新ARP
|
||||
var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
if (!refrshRet)
|
||||
{
|
||||
logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
}
|
||||
// var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
// if (!refrshRet)
|
||||
// {
|
||||
// logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
// }
|
||||
|
||||
var ipBytes = ip.GetAddressBytes();
|
||||
|
||||
@@ -106,11 +117,11 @@ public class NetConfig
|
||||
MsgBus.UDPServer.ClearUDPData(this.address, this.taskID);
|
||||
|
||||
// 刷新ARP
|
||||
var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
if (!refrshRet)
|
||||
{
|
||||
logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
}
|
||||
// var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
// if (!refrshRet)
|
||||
// {
|
||||
// logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
// }
|
||||
|
||||
var ipBytes = ip.GetAddressBytes();
|
||||
|
||||
@@ -160,13 +171,13 @@ public class NetConfig
|
||||
|
||||
// 清除UDP服务器接收缓冲区
|
||||
MsgBus.UDPServer.ClearUDPData(this.address, this.taskID);
|
||||
|
||||
|
||||
// 刷新ARP
|
||||
var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
if (!refrshRet)
|
||||
{
|
||||
logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
}
|
||||
// var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
// if (!refrshRet)
|
||||
// {
|
||||
// logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
// }
|
||||
|
||||
var ret = await UDPClientPool.WriteAddrSeq(this.ep, this.taskID, NetConfigAddr.HOST_MAC, macAddress, this.timeout);
|
||||
if (!ret.IsSuccessful)
|
||||
@@ -214,13 +225,13 @@ public class NetConfig
|
||||
|
||||
// 清除UDP服务器接收缓冲区
|
||||
MsgBus.UDPServer.ClearUDPData(this.address, this.taskID);
|
||||
|
||||
|
||||
// 刷新ARP
|
||||
var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
if (!refrshRet)
|
||||
{
|
||||
logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
}
|
||||
// var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
// if (!refrshRet)
|
||||
// {
|
||||
// logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
// }
|
||||
|
||||
var ret = await UDPClientPool.WriteAddrSeq(this.ep, this.taskID, NetConfigAddr.BOARD_MAC, macAddress, this.timeout);
|
||||
if (!ret.IsSuccessful)
|
||||
@@ -262,13 +273,13 @@ public class NetConfig
|
||||
{
|
||||
// 清除UDP服务器接收缓冲区
|
||||
MsgBus.UDPServer.ClearUDPData(this.address, this.taskID);
|
||||
|
||||
|
||||
// 刷新ARP
|
||||
var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
if (!refrshRet)
|
||||
{
|
||||
logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
}
|
||||
// var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
// if (!refrshRet)
|
||||
// {
|
||||
// logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
// }
|
||||
|
||||
var ret = await UDPClientPool.ReadAddrSeq(this.ep, this.taskID, NetConfigAddr.HOST_IP, this.timeout);
|
||||
if (!ret.IsSuccessful)
|
||||
@@ -296,13 +307,13 @@ public class NetConfig
|
||||
{
|
||||
// 清除UDP服务器接收缓冲区
|
||||
MsgBus.UDPServer.ClearUDPData(this.address, this.taskID);
|
||||
|
||||
|
||||
// 刷新ARP
|
||||
var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
if (!refrshRet)
|
||||
{
|
||||
logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
}
|
||||
// var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
// if (!refrshRet)
|
||||
// {
|
||||
// logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
// }
|
||||
|
||||
var ret = await UDPClientPool.ReadAddrSeq(this.ep, this.taskID, NetConfigAddr.BOARD_IP, this.timeout);
|
||||
if (!ret.IsSuccessful)
|
||||
@@ -332,11 +343,11 @@ public class NetConfig
|
||||
MsgBus.UDPServer.ClearUDPData(this.address, this.taskID);
|
||||
|
||||
// 刷新ARP
|
||||
var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
if (!refrshRet)
|
||||
{
|
||||
logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
}
|
||||
// var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
// if (!refrshRet)
|
||||
// {
|
||||
// logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
// }
|
||||
|
||||
var ret = await UDPClientPool.ReadAddrSeq(this.ep, this.taskID, NetConfigAddr.HOST_MAC, this.timeout);
|
||||
if (!ret.IsSuccessful)
|
||||
@@ -364,13 +375,13 @@ public class NetConfig
|
||||
{
|
||||
// 清除UDP服务器接收缓冲区
|
||||
MsgBus.UDPServer.ClearUDPData(this.address, this.taskID);
|
||||
|
||||
|
||||
// 刷新ARP
|
||||
var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
if (!refrshRet)
|
||||
{
|
||||
logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
}
|
||||
// var refrshRet = await Arp.UpdateArpEntryByPingAsync(this.address);
|
||||
// if (!refrshRet)
|
||||
// {
|
||||
// logger.Warn($"Refrash Arp failed, but maybe not a big deal.");
|
||||
// }
|
||||
|
||||
var ret = await UDPClientPool.ReadAddrSeq(this.ep, this.taskID, NetConfigAddr.BOARD_MAC, this.timeout);
|
||||
if (!ret.IsSuccessful)
|
||||
|
||||
Reference in New Issue
Block a user