Miniwebserver

From C3D2
Revision as of 19:12, 26 June 2008 by Astro (Talk | contribs)

Jump to: navigation, search

Contents

Python

beginner version

#!/usr/bin/env python
import sys
import os
from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):
    pass
if len(sys.argv) != 3:
    print "Usage: %s <port> <dir>" % (sys.argv[0],)
    sys.exit()
address = ('', int(sys.argv[1]))
server = ThreadedHTTPServer(address, SimpleHTTPRequestHandler)
os.chdir(sys.argv[2])
try:
    server.serve_forever()
except KeyboardInterrupt:
    pass

advanced version

#!/usr/bin/env python
import sys
from twisted.python import log
from twisted.internet import reactor
from twisted.web import server, static
if len(sys.argv) != 3:
    print "Usage: %s <port> <dir>" % (sys.argv[0],)
    sys.exit()
root = static.File(sys.argv[2])
site = server.Site(root)
reactor.listenTCP(int(sys.argv[1]), site)
log.startLogging(sys.stderr)
reactor.run()

guru version

twistd -n web --path $path --port $port

Ruby

äđëqüäŧë

#!/usr/local/bin/ruby
require 'webrick'
include WEBrick
if ARGV.size != 2
  puts "Usage: #{$0} <port> <dir>"
  exit
end
s = HTTPServer.new(
  :Port            => ARGV[0].to_i,
  :DocumentRoot    => ARGV[1]
)
trap("INT"){ s.shutdown }
s.start

gürü

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port=>8080,:DocumentRoot=>"/tmp").start'


Speed metal coding 64x64.jpg
Rübÿ Spëëd Mëtäl Cödïng
Coders: Astro | Conny | Sven
Projects: CacaANSICam | Date Determinator | DVB-Scraping | Filmnächte-Scraping | GeeKal | Gruntmaster | Harvester | Hirn | Irb | Jargon-File | Ruby-MediaWiki | Miniwebserver | Momomoto | Pentabarf | Podcast-fetching | Ruby | Ruby-Geekend | Ruby und Ruby on Rails | Sedusa | VDS-Badges | Xmotoctl | Youtube-Scraping
Personal tools
Namespaces

Variants
Actions
Navigation
Tools