Receiving a rednet message through os.pullEvent()
The following method is a good method of receiving a rednet message without using rednet.receive(). It is usually used in IRC, Chat programs e.t.c. When a message arrives to a computer, a "rednet_message" event occurs.
The Code
This is a typical Listener which prints the content and the sender id of any incoming message.
for n,m in ipairs(rs.getSides()) do rednet.open(m) end -- Opens all rednet sides. while true do event, id, text = os.pullEvent() if event == "rednet_message" then print(id .. "> " .. text) end end
Explanation
for n,m in ipairs(rs.getSides()) do rednet.open(m) end
Here we just open all sides for rednet processing.
while true do
We start a loop because os.pullEvent() terminates itself after 10 seconds.
event, id, text = os.pullEvent()
We wait for an event to occur and when this happens, we store the event's info into 3 variables. NOTE: You can give your variables whichever name you want.
if event == "rednet_message" then
We check if the event was a rednet message.
print(id .. "> " .. text)
We print the message and the id of the sender.
end end
We close our previous statements.
Security
Beware that rednet is not secure on its own, with easily exploitable vulnerabilities that allow hackers to hack your networks into pieces--through attacks like wiretapping, spoofing, forgery, overloading, and many more. Be sure to add your own security when using rednet.