Class: DeepConnect::Accepter
Instance Method Summary collapse
-
#initialize(org) ⇒ Accepter
constructor
A new instance of Accepter.
- #open(service = 0) ⇒ Object
- #port_number ⇒ Object
- #start ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize(org) ⇒ Accepter
Returns a new instance of Accepter.
16 17 18 19 |
# File 'lib/deep-connect/accepter.rb', line 16 def initialize(org) @organizer = org @probe = nil end |
Instance Method Details
#open(service = 0) ⇒ Object
25 26 27 |
# File 'lib/deep-connect/accepter.rb', line 25 def open(service = 0) @probe = TCPServer.open("", service) end |
#port_number ⇒ Object
21 22 23 |
# File 'lib/deep-connect/accepter.rb', line 21 def port_number @probe.addr[1] end |
#start ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/deep-connect/accepter.rb', line 29 def start @probe_thread = Thread.start { loop do sock = @probe.accept Thread.start do port = Port.new(sock) begin unless (ev = port.import).kind_of?(Event::InitSessionEvent) puts "WARN: 接続初期化エラー: [#{port.peeraddr}]" end begin @organizer.connect_deep_space_with_port port, ev.local_id rescue ConnectCancel puts "INFO: クライアント(#{ev.local_id}からの接続を拒否しました." rescue ConnectionRefused puts "WARN: クライアント(#{ev.local_id}への接続が拒否されました" rescue ProtocolError, IOError puts "WARN: 接続初期化エラー: [#{port.peeraddr}]" end rescue EOFError puts "WARN: 接続初期化中に[#{port.peeraddr}]との接続が切れました" end end end } end |
#stop ⇒ Object
57 58 59 60 |
# File 'lib/deep-connect/accepter.rb', line 57 def stop @probe_thread.exit @probe.close end |