如果要让你的lua支持ipv6。你可能会这样做
local addrifo = socket.dns.getaddrinfo(\"www.baidu\")
if addrifo ~= nil then
for k,v in pairs(addrifo) do
if v == \"inet6\" then
isipv6_only = true
break
end
end
end
if isipv6_only then
self.tcp = socket.tcp6()
else
self.tcp = socket.tcp()
end
然而,当你的服务器同时支持ipv4和ipv6的时候,这种写法是错误的。它无法通过苹果的ipv6审核,会被拒绝掉。因为这个问题,我的App被拒绝了很多次。那么正确的写法如何:
function isIpv6()
local tcp = socketnnect(\"www.baidu\", 80)
local ip = tcp:getsockname()
local ipv6 = false
if string.find(ip, \":\") ~= nil then
ipv6 = true
end
return ipv6
end
function connect(address, port)
if isIpv6() then
_socket = socket.tcp6()
else
_socket = socket.tcp()
end
end
这样lua就能完美的支持ipv6了。一定可以通过苹果的审核。
如果要让你的lua支持ipv6。你可能会这样做
local addrifo = socket.dns.getaddrinfo(\"www.baidu\")
if addrifo ~= nil then
for k,v in pairs(addrifo) do
if v == \"inet6\" then
isipv6_only = true
break
end
end
end
if isipv6_only then
self.tcp = socket.tcp6()
else
self.tcp = socket.tcp()
end
然而,当你的服务器同时支持ipv4和ipv6的时候,这种写法是错误的。它无法通过苹果的ipv6审核,会被拒绝掉。因为这个问题,我的App被拒绝了很多次。那么正确的写法如何:
function isIpv6()
local tcp = socketnnect(\"www.baidu\", 80)
local ip = tcp:getsockname()
local ipv6 = false
if string.find(ip, \":\") ~= nil then
ipv6 = true
end
return ipv6
end
function connect(address, port)
if isIpv6() then
_socket = socket.tcp6()
else
_socket = socket.tcp()
end
end
这样lua就能完美的支持ipv6了。一定可以通过苹果的审核。