Networking between devices on the same wifi connection

Questions about the LÖVE API, installing LÖVE and other support related questions go here.
Forum rules
Before you make a thread asking for help, read this.
Post Reply
pauls313
Prole
Posts: 46
Joined: Tue Aug 02, 2016 3:07 am

Networking between devices on the same wifi connection

Post by pauls313 » Thu Apr 11, 2019 7:26 pm

Using LuaSocket Tutorial:Networking_with_UDP, how can I send packets from, say, my phone to my laptop? I've tried using 'localhost', ''127.0.0.1", "192.168.1.0" as addresses but none of these seem to work.

User avatar
keharriso
Citizen
Posts: 73
Joined: Fri Nov 16, 2012 9:34 pm

Re: Networking between devices on the same wifi connection

Post by keharriso » Thu Apr 11, 2019 8:43 pm

You either need to make a note of your phone and laptop's IP addresses or use the broadcast address "255.255.255.255". "localhost" and "127.0.0.1" both refer to the local machine (your phone in this example).
LÖVE-Nuklear - a lightweight immediate mode GUI for LÖVE games

pauls313
Prole
Posts: 46
Joined: Tue Aug 02, 2016 3:07 am

Re: Networking between devices on the same wifi connection

Post by pauls313 » Thu Apr 11, 2019 8:59 pm

keharriso wrote:
Thu Apr 11, 2019 8:43 pm
You either need to make a note of your phone and laptop's IP addresses or use the broadcast address "255.255.255.255". "localhost" and "127.0.0.1" both refer to the local machine (your phone in this example).
Neither of these work. I've opened the 8090 port on my router but I still can't receive messages on both ends, both using their respective IPs and using 255.255.255.255

Could it have something to do with my router?

grump
Party member
Posts: 576
Joined: Sat Jul 22, 2017 7:43 pm

Re: Networking between devices on the same wifi connection

Post by grump » Thu Apr 11, 2019 9:29 pm

pauls313 wrote:
Thu Apr 11, 2019 8:59 pm
Could it have something to do with my router?
Assuming that you're talking about an actual router, and not some kind of local firewall - probably not. The task of a router is to connect different networks. "Opening a port" on the router exposes your local network to the Internet for connections on that port, but it doesn't change anything about how local connections work, because a local network doesn't require routing by definition.

User avatar
keharriso
Citizen
Posts: 73
Joined: Fri Nov 16, 2012 9:34 pm

Re: Networking between devices on the same wifi connection

Post by keharriso » Thu Apr 11, 2019 11:06 pm

How about you upload a .love of the most basic case you can make that doesn't work. There might be a problem in the way you're doing things that we have no way of knowing about.
LÖVE-Nuklear - a lightweight immediate mode GUI for LÖVE games

pauls313
Prole
Posts: 46
Joined: Tue Aug 02, 2016 3:07 am

Re: Networking between devices on the same wifi connection

Post by pauls313 » Fri Apr 12, 2019 2:20 am

Server:

Code: Select all

local socket = require "socket"
local udp = socket.udp()
udp:settimeout(0)
udp:setsockname('*', 12345)
local data, ip, port

function love.update(dt)
  
  data, ip, port = udp:receivefrom()
  
end

function love.draw()
  if data then
    love.graphics.print(data, 300, 300)
  end
end
Client:

Code: Select all

local socket = require "socket"
local address, port = "192.168.16.102", 12345
udp = socket.udp()
udp:settimeout(0)
udp:setpeername(address, port)

function love.update(dt)
  udp:send("Hello!")
end
Attachments
client.love
(270 Bytes) Downloaded 111 times
server.love
(304 Bytes) Downloaded 110 times

User avatar
keharriso
Citizen
Posts: 73
Joined: Fri Nov 16, 2012 9:34 pm

Re: Networking between devices on the same wifi connection

Post by keharriso » Fri Apr 12, 2019 1:44 pm

Try changing your server code to this:

Code: Select all

local socket = require "socket"
local udp = socket.udp()
udp:settimeout(0)
udp:setsockname('0.0.0.0', 12345)
local data, ip, port

function love.update(dt)
  local msg
  msg, ip, port = udp:receivefrom()
  if msg then
	data = msg
  end
end

function love.draw()
  if data then
    love.graphics.print(data, 300, 300)
  end
end
There are two changes:
1. The "*" address appears to be bugged on Windows, so use "0.0.0.0" instead.
2. Save the last received message to be displayed instead of overwriting it every update.
LÖVE-Nuklear - a lightweight immediate mode GUI for LÖVE games

pauls313
Prole
Posts: 46
Joined: Tue Aug 02, 2016 3:07 am

Re: Networking between devices on the same wifi connection

Post by pauls313 » Sat Apr 13, 2019 6:51 pm

keharriso wrote:
Fri Apr 12, 2019 1:44 pm
Try changing your server code to this:

Code: Select all

local socket = require "socket"
local udp = socket.udp()
udp:settimeout(0)
udp:setsockname('0.0.0.0', 12345)
local data, ip, port

function love.update(dt)
  local msg
  msg, ip, port = udp:receivefrom()
  if msg then
	data = msg
  end
end

function love.draw()
  if data then
    love.graphics.print(data, 300, 300)
  end
end
There are two changes:
1. The "*" address appears to be bugged on Windows, so use "0.0.0.0" instead.
2. Save the last received message to be displayed instead of overwriting it every update.
Thanks! The "*" seemed to be the problem.

Post Reply

Who is online

Users browsing this forum: kikito and 11 guests