Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 在使用上有困难;“发送到”;在lua套接字库中_Sockets_Lua_Udp_P2p_Hole Punching - Fatal编程技术网

Sockets 在使用上有困难;“发送到”;在lua套接字库中

Sockets 在使用上有困难;“发送到”;在lua套接字库中,sockets,lua,udp,p2p,hole-punching,Sockets,Lua,Udp,P2p,Hole Punching,因此,我试图让peer2peer配对服务器运行,而我在“sendto”方面遇到了问题。我在使用“send”方面取得了一些成功,但是当时间到来时,我无法执行打孔步骤,因为出于某种原因,它不会将对等点切换到其他客户端。因此,现在我正在尝试“sendto”,但sendto甚至无法向服务器发送消息 这是我的密码: 客户: local socket = require("socket") local udp = socket.udp() udp:setsockname("*", 0) udp:setti

因此,我试图让peer2peer配对服务器运行,而我在“sendto”方面遇到了问题。我在使用“send”方面取得了一些成功,但是当时间到来时,我无法执行打孔步骤,因为出于某种原因,它不会将对等点切换到其他客户端。因此,现在我正在尝试“sendto”,但sendto甚至无法向服务器发送消息

这是我的密码:

客户:

local socket = require("socket")

local udp = socket.udp()
udp:setsockname("*", 0)
udp:settimeout(0)

--For server_ip I have also tried "localhost", "192.168.1.3", "127.0.0.1", and "127.0.0.0"
--none of them work. :(
local server_ip, server_port = "24.159.10.150", 30672

udp:sendto("FOO", server_ip, server_port)`
服务器:

local socket = require("socket")

local udp = socket.udp()
udp:setsockname('*', 30672)
udp:settimeout(0)

while true do
    local data, ip, port = udp:receivefrom()
    if data ~= nil then
        break;
    end
end
print("SUCCESS!!")

您可以尝试在sendto之后添加几毫秒的睡眠时间,或者将睡眠时间改为某个超时时间。也可能是检查你的防火墙。因为这段代码对我来说适用于
127.0.0.1
,所以我增加了1000毫秒的超时时间……不过这里有点奇怪;实际上,它并没有等待…我已经尝试了我能想到的所有IP,试图向服务器发送消息…但每当我“打印”时,它总是说“没有这样的主机知道”。我在防火墙中做的唯一一件事就是从该端口将端口转发到我的本地IP流量(30672)但即使我不在该端口转发流量,它也会做同样的事情。我使用的是3.0-rc1版本,如果有帮助的话……但我不能更改版本,因为我使用的是corona来编写我的应用程序,并且它是预安装的……你能试着改用tcp吗?也许它会告诉你任何网络问题。