2008年5月5日月曜日

echoをpythonで書く。その2

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
SockServerバージョン。なんかmix-inしているがうまく機能していない。mix-inの順番間違えていてsingle threadになっていた。しかしまだctrl-cが効かないし、loadも跳ね上がってしまう。(while loopのせい)


#!/usr/bin/python
import SocketServer
import time

class EchoServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
allow_reuse_address = 1 # Seems to make sense in testing environment

class EchoRequestHandler(SocketServer.StreamRequestHandler):

def handle_one_request(self):
raw_requestline = self.rfile.readline()
self.wfile.write(raw_requestline)

def handle(self):
"""Handle multiple requests if necessary."""
while True:
self.handle_one_request()

server = EchoServer(('127.0.0.1', 20000), EchoRequestHandler)

server.serve_forever()

1 件のコメント:

nori さんのコメント...

daemon_threads = Trueを指定しましょう。

windowsでやる人はget_requestをselectをつかって書き直しましょう。