Receiving a rednet message through os.pullEvent()

From ComputerCraft Wiki
Jump to: navigation, search

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.

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox