diff options
Diffstat (limited to 'sample/svr.rb')
-rw-r--r-- | sample/svr.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sample/svr.rb b/sample/svr.rb new file mode 100644 index 0000000000..c866407eb0 --- /dev/null +++ b/sample/svr.rb @@ -0,0 +1,32 @@ +# socket example - server side +# usage: ruby svr.rb + +require "socket" + +gs = TCPserver.open(0) +addr = gs.addr +addr.shift +printf("server is on %d\n", addr.join(":")) +socks = [gs] + +while TRUE + nsock = select(socks); + next if nsock == nil + for s in nsock[0] + if s == gs + ns = s.accept + socks.push(ns) + print(s, " is accepted\n") + else + if s.eof? + print(s, " is gone\n") + s.close + socks.delete(s) + else + if str = s.gets; + s.write(str) + end + end + end + end +end |