mirror of
https://github.com/lunarmodules/luasocket.git
synced 2024-12-26 04:28:20 +01:00
Local index in for loop was getting changed...
This commit is contained in:
parent
f18d1b7cd0
commit
d0560e0b44
@ -1,11 +1,11 @@
|
||||
function set_add(set, sock)
|
||||
tinsert(set, sock)
|
||||
table.insert(set, sock)
|
||||
end
|
||||
|
||||
function set_remove(set, sock)
|
||||
for i = 1, getn(set) do
|
||||
for i = 1, table.getn(set) do
|
||||
if set[i] == sock then
|
||||
tremove(set, i)
|
||||
table.remove(set, i)
|
||||
break
|
||||
end
|
||||
end
|
||||
@ -20,10 +20,10 @@ if arg then
|
||||
port2 = arg[3] or port2
|
||||
end
|
||||
|
||||
server1, error = bind(host, port1)
|
||||
server1, error = socket.bind(host, port1)
|
||||
if not server1 then print(error) exit() end
|
||||
server1:timeout(1)
|
||||
server2, error = bind(host, port2)
|
||||
server2, error = socket.bind(host, port2)
|
||||
if not server2 then print(error) exit() end
|
||||
server2:timeout(1)
|
||||
|
||||
@ -35,7 +35,7 @@ sock_id[server2] = 2
|
||||
next_id = 3
|
||||
|
||||
while 1 do
|
||||
local readable, _, error = select(sock_set, nil)
|
||||
local readable, _, error = socket.select(sock_set, nil)
|
||||
for _, sock in readable do
|
||||
-- is it a server socket
|
||||
if sock_id[sock] < 3 then
|
||||
@ -44,8 +44,8 @@ while 1 do
|
||||
incomming:timeout(1)
|
||||
sock_id[incomming] = next_id
|
||||
set_add(sock_set, incomming)
|
||||
write("Added client id ", next_id, ". ",
|
||||
getn(sock_set)-2, " total.\n")
|
||||
io.write("Added client id ", next_id, ". ",
|
||||
table.getn(sock_set)-2, " total.\n")
|
||||
next_id = next_id + 1
|
||||
end
|
||||
-- it is a client socket
|
||||
@ -55,17 +55,17 @@ while 1 do
|
||||
if error then
|
||||
sock:close()
|
||||
set_remove(sock_set, sock)
|
||||
write("Removed client number ", id, ". ",
|
||||
io.write("Removed client number ", id, ". ",
|
||||
getn(sock_set)-2, " total.\n")
|
||||
else
|
||||
write("Broadcasting line '", id, "> ", line, "'.\n")
|
||||
_, writable, error = select(nil, sock_set, 1)
|
||||
io.write("Broadcasting line '", id, "> ", line, "'.\n")
|
||||
__, writable, error = socket.select(nil, sock_set, 1)
|
||||
if not error then
|
||||
for _, outgoing in writable do
|
||||
write("Sending to client ", sock_id[outgoing], "\n")
|
||||
for ___, outgoing in writable do
|
||||
io.write("Sending to client ", sock_id[outgoing], "\n")
|
||||
outgoing:send(id, "> ", line, "\r\n")
|
||||
end
|
||||
else write("No one ready to listen!!!\n") end
|
||||
else io.write("No one ready to listen!!!\n") end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user