client.py
author Eugen Sawin <sawine@me73.com>
Thu, 17 Jun 2010 23:24:41 +0200
changeset 6 9147c845cecb
permissions -rw-r--r--
Client skeleton added.
     1 from PySFML import sf
     2 import optparse
     3 import com
     4 import pickle
     5 import hashlib
     6 import SocketServer
     7 
     8 class Handler(SocketServer.BaseRequestHandler):
     9 	"""
    10 	"""	
    11 	def handle(self):
    12 		data = self.request[0]
    13 		socket = self.request[1]
    14 		#print "%s wrote:" % self.client_address[0]
    15 		#print data
    16 		key_found = False
    17 		cell = value = None
    18 		for key, value in com.commands.iteritems():
    19 			if key in data:
    20 				key_found = True
    21 				args = data.partition(key)[2].split()				
    22 				if args:
    23 					cell, value = value[0](socket, self.client_address, self.worker, args)
    24 			
    25 		self.update(cell, value)
    26 			
    27 class Client(SocketServer.UDPServer):
    28 	def __init__(self, host, port, handler, options, server):
    29 		SocketServer.UDPServer.__init__(self, (host, port), handler)
    30 		self.window = sf.RenderWindow(sf.VideoMode(800, 800), "xaoc")
    31 		self.host = host
    32 		self.port = port
    33 		self.handler = handler
    34 		self.handler.update = self.update
    35 		self.options = options
    36 		self.server = server
    37 		self.cells = {}
    38 	def update(self, cell, value):
    39 		event = sf.Event()
    40 		while self.window.GetEvent(event):
    41 			if event.Type == sf.Event.Closed:
    42 				pass
    43 		self.window.Clear()
    44 		text = sf.String("x", sf.Font.GetDefaultFont(), 50)
    45 		for cell in self.cells.iteritems():
    46 			self.window.Draw(text)
    47 		self.window.Display()	
    48 	def run(self):
    49 		self.serve_forever()	
    50 	
    51 			
    52 
    53 if __name__ == "__main__":
    54 	parser = optparse.OptionParser(usage="usage: %prog [options] port server_ip server_port",
    55 		option_list=option_list)
    56 	options, args = parser.parse_args()
    57 		
    58 	if len(args) > 0:
    59 		host = "localhost"
    60 		port = int(args[0])	
    61 		server = (int(args[1]), int(args[2]))			
    62 		client = Client(host, port, Handler, options, server)
    63 		client.run()
    64