DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Ruby One Time Web Server

02.07.2007
| 6116 views |
  • submit to reddit
        An interpretation of <a href="http://c2.com/cgi/wiki?OneTimeWebServer">OneTimeWebServer</a> in Ruby. OneTimeWebServer holds a single "page" in memory, serves it to the first visitor, and evaporates. Useful for all sorts of hijinks.

#!/usr/local/bin/ruby
require 'socket'
t = STDIN.read
while s = TCPServer.new('127.0.0.1', (ARGV[0] or 8080)).accept
  puts s.gets
  s.print "HTTP/1.1 200/OK\rContent-type: text/plain\r\n\r\n" + t
  s.close
  exit
end

Usage:

echo "test" | ./otws.rb [optional port number, defaults to 8080]

Or for recursive fun:

cat otws.rb | ./otws.rb [optional port number, defaults to 8080]