我使用 udp 套接字编程创建了两个文件,一个发送和其他接收,我确实将接收的文件放在另一台具有不同提供程序的计算机中,我执行了发送方,在接收方之后,我确实看到接收方没有收到任何数据包, ip配置没关系,发送方发送给接收方IP和端口,有人说我需要“打开” udp端口,但是MMORPG游戏使用这种策略,有必要吗?接收器在您的 IP 和定义的端口上执行 Bind(),请参阅代码。
发件人:
begin
sender = UDPSocket.new()
host = "10.100.1.115"
port = 3001
while true
p "Enviando..."
sender.send("Numero #{10}",0,host,port)
sleep 0.1
end
rescue
p $!
end
gets
接收者:
begin
myIP = IPSocket.getaddress(Socket.gethostname) # => 10.100.1.115
puts "Seu IP => #{myIP}"
sock = UDPSocket.new()
sock.bind(myIP,3001)
puts "#=========================#"
puts "....Esperando Pacotes....."
puts "#=========================#"
while true
line = sock.recvfrom(1024)
puts "Recebido : #{line}"
end
rescue
p $!
end
gets
有什么问题吗?我需要使用 NAT?,如果是,我如何使用?游戏开发人员使用什么公共策略使客户端套接字 udp 接收服务器计算机发送的数据包?
(对不起,我的英语不好,我知道)。