Skip to content

Instantly share code, notes, and snippets.

@sfgeorge
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sfgeorge/4659706fb939e3ec8dad to your computer and use it in GitHub Desktop.
Save sfgeorge/4659706fb939e3ec8dad to your computer and use it in GitHub Desktop.
A silly idle TCP Server
#!/usr/bin/env ruby
# encoding: utf-8
require 'socket'
port = ENV['PORT'] || 5678
idletime = ENV['IDLETIME'] || 20 # seconds
def log(message)
puts "#{Time.now} INFO #{message}"
$stdout.flush
end
server = TCPServer.new port
log "Molasses server ready on port #{port}."
loop do
Thread.start(server.accept) do |client|
log "Receiving request from #{client.remote_address.inspect} and idling for #{idletime} seconds."
sleep idletime if idletime > 0
client.puts "#{__FILE__} responded to your request after sleeping for #{idletime}."
client.close
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment