aboutsummaryrefslogtreecommitdiff
path: root/samples
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2004-05-30 21:36:22 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2004-05-30 21:36:22 +0000
commit5ca1049ab47f3f9ff9157f71af9072f04a637500 (patch)
tree24fcb14f2890900a4a709312ab25bfc2c14a3939 /samples
parentc23240726e3044e3eaa32a82a999b754c08bc183 (diff)
downloadluasocket-5ca1049ab47f3f9ff9157f71af9072f04a637500.tar.gz
luasocket-5ca1049ab47f3f9ff9157f71af9072f04a637500.tar.bz2
luasocket-5ca1049ab47f3f9ff9157f71af9072f04a637500.zip
Fine tuning the "require" business.
Diffstat (limited to 'samples')
-rw-r--r--samples/listener.lua15
-rw-r--r--samples/talker.lua13
-rw-r--r--samples/tinyirc.lua19
3 files changed, 17 insertions, 30 deletions
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 @@
4-- Author: Diego Nehab 4-- Author: Diego Nehab
5-- RCS ID: $Id$ 5-- RCS ID: $Id$
6----------------------------------------------------------------------------- 6-----------------------------------------------------------------------------
7require("socket")
7host = host or "*" 8host = host or "*"
8port = port or 8080 9port = port or 8080
9if arg then 10if arg then
@@ -11,18 +12,10 @@ if arg then
11 port = arg[2] or port 12 port = arg[2] or port
12end 13end
13print("Binding to host '" ..host.. "' and port " ..port.. "...") 14print("Binding to host '" ..host.. "' and port " ..port.. "...")
14s, e = socket.bind(host, port) 15s = socket.try(socket.bind(host, port))
15if not s then 16i, p = socket.try(s:getsockname())
16 print(e)
17 exit()
18end
19i, p = s:getsockname()
20print("Waiting connection from talker on " .. i .. ":" .. p .. "...") 17print("Waiting connection from talker on " .. i .. ":" .. p .. "...")
21c, e = s:accept() 18c = socket.try(s:accept())
22if not c then
23 print(e)
24 exit()
25end
26print("Connected. Here is the stuff:") 19print("Connected. Here is the stuff:")
27l, e = c:receive() 20l, e = c:receive()
28while not e do 21while 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 @@
4-- Author: Diego Nehab 4-- Author: Diego Nehab
5-- RCS ID: $Id$ 5-- RCS ID: $Id$
6----------------------------------------------------------------------------- 6-----------------------------------------------------------------------------
7require("socket")
7host = host or "localhost" 8host = host or "localhost"
8port = port or 8080 9port = port or 8080
9if arg then 10if arg then
@@ -11,18 +12,10 @@ if arg then
11 port = arg[2] or port 12 port = arg[2] or port
12end 13end
13print("Attempting connection to host '" ..host.. "' and port " ..port.. "...") 14print("Attempting connection to host '" ..host.. "' and port " ..port.. "...")
14c, e = socket.connect(host, port) 15c = socket.try(socket.connect(host, port))
15if not c then
16 print(e)
17 os.exit()
18end
19print("Connected! Please type stuff (empty line to stop):") 16print("Connected! Please type stuff (empty line to stop):")
20l = io.read() 17l = io.read()
21while l and l ~= "" and not e do 18while l and l ~= "" and not e do
22 t, e = c:send(l, "\n") 19 socket.try(c:send(l, "\n"))
23 if e then
24 print(e)
25 os.exit()
26 end
27 l = io.read() 20 l = io.read()
28end 21end
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 @@
4-- Author: Diego Nehab 4-- Author: Diego Nehab
5-- RCS ID: $Id$ 5-- RCS ID: $Id$
6----------------------------------------------------------------------------- 6-----------------------------------------------------------------------------
7require("socket")
7host = host or "*" 8host = host or "*"
8port1 = port1 or 8080 9port1 = port1 or 8080
9port2 = port2 or 8181 10port2 = port2 or 8181
@@ -13,12 +14,10 @@ if arg then
13 port2 = arg[3] or port2 14 port2 = arg[3] or port2
14end 15end
15 16
16server1, error = socket.bind(host, port1) 17server1 = socket.try(socket.bind(host, port1))
17assert(server1, error) 18server2 = socket.try(socket.bind(host, port2))
18server1:settimeout(1) -- make sure we don't block in accept 19server1:settimeout(1) -- make sure we don't block in accept
19server2, error = socket.bind(host, port2) 20server2:settimeout(1)
20assert(server2, error)
21server2:settimeout(1) -- make sure we don't block in accept
22 21
23io.write("Servers bound\n") 22io.write("Servers bound\n")
24 23
@@ -49,7 +48,7 @@ set:insert(server2)
49 48
50while 1 do 49while 1 do
51 local readable, _, error = socket.select(set, nil) 50 local readable, _, error = socket.select(set, nil)
52 for _, input in readable do 51 for _, input in ipairs(readable) do
53 -- is it a server socket? 52 -- is it a server socket?
54 if input == server1 or input == server2 then 53 if input == server1 or input == server2 then
55 io.write("Waiting for clients\n") 54 io.write("Waiting for clients\n")
@@ -68,10 +67,12 @@ while 1 do
68 set:remove(input) 67 set:remove(input)
69 else 68 else
70 io.write("Broadcasting line '", line, "'\n") 69 io.write("Broadcasting line '", line, "'\n")
71 __, writable, error = socket.select(nil, set, 1) 70 writable, error = socket.skip(1, socket.select(nil, set, 1))
72 if not error then 71 if not error then
73 for ___, output in writable do 72 for __, output in ipairs(writable) do
74 output:send(line .. "\n") 73 if output ~= input then
74 output:send(line .. "\n")
75 end
75 end 76 end
76 else io.write("No client ready to receive!!!\n") end 77 else io.write("No client ready to receive!!!\n") end
77 end 78 end