我们有一个iOS和Android应用程序,它使用Datasnap从他们的手机/平板电脑连接到最终用户的datasnap Windows数据库服务器。一切工作正常,除了现在苹果拒绝我们的应用程序的新版本,因为它不是IPv6兼容。 OkDelphi Datasnap与IPv6(iOS)的连接错误
我们的Firemonkey移动应用程序(Delphi Seattle)允许最终用户设置自己的服务器配置(IP和端口)。他们必须有一个运行在自己的服务器的Windows PC服务器应用程序,所以没有任何HOSTNAME。他们只知道他们的服务器公共IP地址。服务器应用程序安装在简单的Windows PC中。不是一个Web服务器,域等,所以没有任何服务器主机名,而是一个IP地址。
按照Apple的说明创建IPv6专用共享网络后,存在问题。尝试从我的iPad连接到任何IP地址时,出现“服务器无法访问”错误。 我读过,使用括号[]与主机名将工作,但我无法得到它。也许它只适用于主机名,而不是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地址... – mjn42
使用ipconfig(在服务器上)查找其网络适配器的IP v6地址以进行内部测试。对于公共服务器,网络管理员应该知道它的IP v6地址 – mjn42
另请参阅https://stackoverflow.com/questions/37691084/ipv6-connection-with-datasnap – mjn42