【发布时间】:2017-12-26 04:16:25
【问题描述】:
我们有一个 iOS 和 Android 应用程序,它使用 Datasnap 从他们的手机/平板电脑连接到最终用户的 datasnap Windows 数据库服务器。一切正常,除了现在 Apple 拒绝了我们应用的新版本,因为 它不兼容 IPv6。好的
我们的 Firemonkey 移动应用程序(Delphi Seattle)允许最终用户设置他们自己的服务器配置(IP 和端口)。他们必须在他们自己的服务器中运行 Windows PC 服务器应用程序,因此没有任何 HOSTNAME。他们只知道他们的服务器公共 IP 地址。服务器应用程序安装在简单的 Windows PC 中。不是 Web 服务器、域等,因此没有任何服务器主机名,而是 IP 地址。
按照 Apple 的说明创建 IPv6 专用共享网络后,问题存在。尝试从我的 iPad 连接到任何 IP 地址 时,我收到“Server Unreachable”错误。 我已经读过在 hostname 中使用方括号 [ ] 会起作用,但我无法理解。也许它只适用于主机名,而不适用于 IP 地址?
这是我连接到服务器的代码的简化部分:
客户端(移动应用): - TSQLConnection(Datasnap 驱动程序。通信协议:tcp/ip) - TDSProviderConnection
SQLConnection1.Params.Values['HostName'] := MY_SERVER_IP;
try
DSProviderConnection1.Connected:=true;
except
showmessage('error');
end;
我已经为 MY_SERVER_IP 尝试了 XX.XX.XX.XX 和 [XX.XX.XX.XX] 值,但没有成功。 我不知道我是否必须在服务器的 Windows 应用程序或客户端(移动/firemonkey)上进行更改
有什么办法吗?
【问题讨论】:
-
IP v6 类似于 2001:0db8:85a3:08d3:1319:8a2e:0370:7344 - 没有点,而不仅仅是四个组。仅将 IP v4 地址括在括号中不会使其成为有效的 IP v6 地址。您需要知道服务器的 IP v6 地址...
-
使用 ipconfig(在服务器上)查找其网络适配器的 IP v6 地址以进行内部测试。对于公共服务器,网络管理员应该知道它的 IP v6 地址
标签: ios delphi firemonkey ipv6 datasnap