summaryrefslogtreecommitdiff
path: root/sample/tsvr.rb
diff options
context:
space:
mode:
Diffstat (limited to 'sample/tsvr.rb')
-rw-r--r--sample/tsvr.rb17
1 files changed, 7 insertions, 10 deletions
diff --git a/sample/tsvr.rb b/sample/tsvr.rb
index d6a5620d11..2fa6c87ef9 100644
--- a/sample/tsvr.rb
+++ b/sample/tsvr.rb
@@ -2,20 +2,17 @@
# usage: ruby tsvr.rb
require "socket"
-require "thread"
-gs = TCPserver.open(0)
+gs = TCPServer.open(0)
addr = gs.addr
addr.shift
-printf("server is on %d\n", addr.join(":"))
+printf("server is on %s\n", addr.join(":"))
-while TRUE
- ns = gs.accept
- print(ns, " is accepted\n")
- Thread.start do
- s = ns # save to thread-local variable
- while s.gets
- s.write($_)
+loop do
+ Thread.start(gs.accept) do |s|
+ print(s, " is accepted\n")
+ while line = s.gets
+ s.write(line)
end
print(s, " is gone\n")
s.close