嗨玩手游网

使用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了。一定可以通过苹果的审核。

使用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了。一定可以通过苹果的审核。

更多资讯
游戏推荐
更多+