Current Path : /compat/linux/proc/self/root/usr/local/share/examples/ruby18/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //compat/linux/proc/self/root/usr/local/share/examples/ruby18/svr.rb |
# socket example - server side # usage: ruby svr.rb # this server might be blocked by an ill-behaved client. # see tsvr.rb which is safe from client blocking. require "socket" gs = TCPserver.open(0) addr = gs.addr addr.shift printf("server is on %s\n", addr.join(":")) socks = [gs] loop do 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) # single thread gets may block whole service elsif str = s.gets s.write(str) end end end end