Files
rubbs/lib/bbs/server.rb

32 lines
644 B
Ruby

# frozen_string_literal: true
require 'socket'
module BBS
class Server
def initialize(port:)
@port = port
end
def run
server = TCPServer.new('0.0.0.0', @port)
puts "BBS listening on port #{@port} — connect with: telnet localhost #{@port}"
loop do
client = server.accept
Thread.new(client) do |c|
session = Session.new(c)
begin
session.run
rescue => e
nil
ensure
BBS.config.on_session_end&.call(session)
end
end
end
rescue Interrupt
puts "\nServer stopped."
end
end
end