Sha256: 1ef82eb346c6e1c2479194fcf1b1fcfe5e1e319b146fc2c4520c1babc5984e6e
Contents?: true
Size: 818 Bytes
Versions: 2
Compression:
Stored size: 818 Bytes
Contents
require "bundler/setup" require "celluloid/io" class EchoUNIXServer include Celluloid::IO finalizer :finalize attr_reader :socket_path, :server def initialize(socket_path) puts "*** start server #{socket_path}" @socket_path = socket_path @server = UNIXServer.open(socket_path) async.run end def run loop { async.handle_connection @server.accept } end def handle_connection(socket) loop do data = socket.readline puts "*** gets data #{data}" socket.write(data) end rescue EOFError puts "*** disconnected" ensure socket.close end def finalize if @server @server.close File.delete(@socket_path) end end end supervisor = EchoUNIXServer.supervise("/tmp/sock_test") trap("INT") { supervisor.terminate; exit } sleep
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
celluloid-io-0.17.3 | examples/echo_unix_server.rb |
celluloid-io-0.17.2 | examples/echo_unix_server.rb |