-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.py
More file actions
35 lines (26 loc) · 1015 Bytes
/
server.py
File metadata and controls
35 lines (26 loc) · 1015 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
__author__ = 'meskill'
__date__ = '21.09.2014 18:29'
import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s: %(levelname)s: %(module)s - %(message)s')
import socketserver
from struct import pack, unpack
from player import Player
import map_generator
END = b'\x80'
class myRequestHandler(socketserver.StreamRequestHandler):
def return_map(self):
n, m, l, t, tl, h, w, ot = unpack('b' * 8, self.rfile.read(8))
rmap = map_generator.generate_map(n, m, l, t, tl, h, w, ot)
self.wfile.write(pack('b', 11) + pack('b', len(rmap)) + pack('b', len(rmap[0])))
self.wfile.write(b''.join(b''.join(map(lambda x: pack('b', x), y)) for y in rmap))
print(n, m, l, t, tl, h, w, ot)
def handle(self):
p = Player(self.rfile, self.wfile, self.client_address)
p.serve()
if __name__ == '__main__':
srv = socketserver.ThreadingTCPServer(('', 27000), myRequestHandler)
logging.info('Server started')
try:
srv.serve_forever()
except KeyboardInterrupt:
logging.debug('Server interrupted')