From 5ca1049ab47f3f9ff9157f71af9072f04a637500 Mon Sep 17 00:00:00 2001 From: Diego Nehab Date: Sun, 30 May 2004 21:36:22 +0000 Subject: Fine tuning the "require" business. --- samples/listener.lua | 15 ++++----------- samples/talker.lua | 13 +++---------- samples/tinyirc.lua | 19 ++++++++++--------- 3 files changed, 17 insertions(+), 30 deletions(-) (limited to 'samples') diff --git a/samples/listener.lua b/samples/listener.lua index dff4d25..bedbde5 100644 --- a/samples/listener.lua +++ b/samples/listener.lua @@ -4,6 +4,7 @@ -- Author: Diego Nehab -- RCS ID: $Id$ ----------------------------------------------------------------------------- +require("socket") host = host or "*" port = port or 8080 if arg then @@ -11,18 +12,10 @@ if arg then port = arg[2] or port end print("Binding to host '" ..host.. "' and port " ..port.. "...") -s, e = socket.bind(host, port) -if not s then - print(e) - exit() -end -i, p = s:getsockname() +s = socket.try(socket.bind(host, port)) +i, p = socket.try(s:getsockname()) print("Waiting connection from talker on " .. i .. ":" .. p .. "...") -c, e = s:accept() -if not c then - print(e) - exit() -end +c = socket.try(s:accept()) print("Connected. Here is the stuff:") l, e = c:receive() while not e do diff --git a/samples/talker.lua b/samples/talker.lua index 1b0652f..94d2133 100644 --- a/samples/talker.lua +++ b/samples/talker.lua @@ -4,6 +4,7 @@ -- Author: Diego Nehab -- RCS ID: $Id$ ----------------------------------------------------------------------------- +require("socket") host = host or "localhost" port = port or 8080 if arg then @@ -11,18 +12,10 @@ if arg then port = arg[2] or port end print("Attempting connection to host '" ..host.. "' and port " ..port.. "...") -c, e = socket.connect(host, port) -if not c then - print(e) - os.exit() -end +c = socket.try(socket.connect(host, port)) print("Connected! Please type stuff (empty line to stop):") l = io.read() while l and l ~= "" and not e do - t, e = c:send(l, "\n") - if e then - print(e) - os.exit() - end + socket.try(c:send(l, "\n")) l = io.read() end diff --git a/samples/tinyirc.lua b/samples/tinyirc.lua index b48b90a..eac979d 100644 --- a/samples/tinyirc.lua +++ b/samples/tinyirc.lua @@ -4,6 +4,7 @@ -- Author: Diego Nehab -- RCS ID: $Id$ ----------------------------------------------------------------------------- +require("socket") host = host or "*" port1 = port1 or 8080 port2 = port2 or 8181 @@ -13,12 +14,10 @@ if arg then port2 = arg[3] or port2 end -server1, error = socket.bind(host, port1) -assert(server1, error) +server1 = socket.try(socket.bind(host, port1)) +server2 = socket.try(socket.bind(host, port2)) server1:settimeout(1) -- make sure we don't block in accept -server2, error = socket.bind(host, port2) -assert(server2, error) -server2:settimeout(1) -- make sure we don't block in accept +server2:settimeout(1) io.write("Servers bound\n") @@ -49,7 +48,7 @@ set:insert(server2) while 1 do local readable, _, error = socket.select(set, nil) - for _, input in readable do + for _, input in ipairs(readable) do -- is it a server socket? if input == server1 or input == server2 then io.write("Waiting for clients\n") @@ -68,10 +67,12 @@ while 1 do set:remove(input) else io.write("Broadcasting line '", line, "'\n") - __, writable, error = socket.select(nil, set, 1) + writable, error = socket.skip(1, socket.select(nil, set, 1)) if not error then - for ___, output in writable do - output:send(line .. "\n") + for __, output in ipairs(writable) do + if output ~= input then + output:send(line .. "\n") + end end else io.write("No client ready to receive!!!\n") end end -- cgit v1.2.3-55-g6feb