sawine@0
|
1 |
#!/usr/bin/python
|
sawine@0
|
2 |
|
sawine@0
|
3 |
import com
|
sawine@0
|
4 |
import grid
|
sawine@0
|
5 |
import optparse
|
sawine@0
|
6 |
import SocketServer
|
sawine@0
|
7 |
|
sawine@0
|
8 |
option_list = [
|
sawine@0
|
9 |
optparse.make_option("-q", "--quiet", action="store_true", dest="quiet",
|
sawine@0
|
10 |
help="quiet mode", default=False)]
|
sawine@0
|
11 |
|
sawine@0
|
12 |
class Handler(SocketServer.BaseRequestHandler):
|
sawine@0
|
13 |
"""
|
sawine@0
|
14 |
"""
|
sawine@0
|
15 |
def handle(self):
|
sawine@0
|
16 |
data = self.request[0].strip()
|
sawine@0
|
17 |
socket = self.request[1]
|
sawine@0
|
18 |
print "%s wrote:" % self.client_address[0]
|
sawine@0
|
19 |
print data
|
sawine@0
|
20 |
for key, value in com.commands.iteritems():
|
sawine@0
|
21 |
if key in data:
|
sawine@0
|
22 |
args = data.partition(key)[2].split()
|
sawine@0
|
23 |
if args:
|
sawine@0
|
24 |
value(socket, self.client_address, args)
|
sawine@0
|
25 |
else:
|
sawine@0
|
26 |
value(socket, self.client_address)
|
sawine@0
|
27 |
|
sawine@0
|
28 |
class Server(SocketServer.UDPServer):
|
sawine@0
|
29 |
def __init__(self, host, port, handler, options):
|
sawine@0
|
30 |
SocketServer.UDPServer.__init__(self, (host, port), handler)
|
sawine@0
|
31 |
self.host = host
|
sawine@0
|
32 |
self.port = port
|
sawine@0
|
33 |
self.handler = handler
|
sawine@0
|
34 |
self.options = options
|
sawine@0
|
35 |
def run(self):
|
sawine@0
|
36 |
self.serve_forever()
|
sawine@0
|
37 |
|
sawine@0
|
38 |
if __name__ == "__main__":
|
sawine@0
|
39 |
parser = optparse.OptionParser(usage="usage: %prog [options] port",
|
sawine@0
|
40 |
option_list=option_list)
|
sawine@0
|
41 |
options, args = parser.parse_args()
|
sawine@0
|
42 |
|
sawine@0
|
43 |
if len(args) > 0:
|
sawine@0
|
44 |
port = int(args[0])
|
sawine@0
|
45 |
server = Server("localhost", port, Handler, options)
|
sawine@0
|
46 |
server.run()
|