diff --git a/Doc/srmp.lua b/Doc/srmp.lua
index 7090e2e..0fd2813 100644
--- a/Doc/srmp.lua
+++ b/Doc/srmp.lua
@@ -3,12 +3,16 @@ do
-- https://www.wireshark.org/docs/wsdg_html_chunked/lua_module_Proto.html#lua_class_ProtoField
local FF_flag = {
- [7] = "[Reply]",
- [6] = "[Error/Oneway]"
- }
-
- -- local f_flag = ProtoField.uint8("SRMP.flag", "标记", base.HEX, FF_flag, 0xFF)
- local f_flag = ProtoField.uint8("SRMP.flag", "标记", base.HEX)
+ [0x80] = "[Reply]",
+ [0x81] = "[Reply]",
+ [8] = "[Reply]",
+ [7] = "[Error/Oneway]",
+ [2] = "[Json]",
+ [1] = "[Binary]"
+ }
+
+ local f_flag = ProtoField.uint8("SRMP.flag", "标记", base.HEX, FF_flag, 0xFF)
+ -- local f_flag = ProtoField.uint8("SRMP.flag", "标记", base.HEX)
local f_seq = ProtoField.uint8("SRMP.seq", "序列号", base.DEC)
local f_length = ProtoField.uint16("SRMP.length", "长度", base.DEC)
local f_action = ProtoField.string("SRMP.action", "动作", base.ASCII)
@@ -77,7 +81,7 @@ do
end
end
- local udp_encap_table = DissectorTable.get("udp.port")
+ local udp_encap_table = DissectorTable.get("newlife")
udp_encap_table:add(5500, p_srmp)
udp_encap_table:add(9999, p_srmp)
udp_encap_table:add(3500, p_srmp)
diff --git a/NewLife.Remoting/ApiClient.cs b/NewLife.Remoting/ApiClient.cs
index fc398b2..ed99940 100644
--- a/NewLife.Remoting/ApiClient.cs
+++ b/NewLife.Remoting/ApiClient.cs
@@ -23,6 +23,9 @@ public class ApiClient : ApiHost, IApiClient
/// 服务端地址集合。负载均衡
public String[]? Servers { get; set; }
+ /// 本地地址。在本地有多个IP时,可以指定使用哪一个IP地址
+ public NetUri Local { get; set; }
+
/// 客户端连接集群
public ICluster? Cluster { get; set; }
@@ -397,6 +400,8 @@ protected virtual ISocketClient OnCreate(String svr)
client.Timeout = Timeout;
client.Tracer = Tracer;
+ if (Local != null) client.Local = Local;
+
client.Add(GetMessageCodec());
client.Opened += (s, e) => OnNewSession((s as ISocketClient)!);
diff --git a/NewLife.Remoting/Clients/HttpClientBase.cs b/NewLife.Remoting/Clients/HttpClientBase.cs
index f43fc3f..7eba8fe 100644
--- a/NewLife.Remoting/Clients/HttpClientBase.cs
+++ b/NewLife.Remoting/Clients/HttpClientBase.cs
@@ -1,4 +1,5 @@
using System.Collections.Concurrent;
+using System.Net.Http;
using System.Net.NetworkInformation;
using NewLife;
using NewLife.Caching;