我們有一個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