def __init__(self): self.new_clients = [ ] #list of new sockets of which the user id is not known self.logged_name2sock = {} #dictionary mapping username to socket self.logged_sock2name = {} # dict mapping socket to user name self.all_sockets = [] self.group = grp.Group() self.players = p.Players() #start server self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server.bind(SERVER) self.server.listen(5) self.all_sockets.append(self.server) #initialize past chat indices self.indices = {} # sonnet # self.sonnet_f = open('AllSonnets.txt.idx', 'rb') # self.sonnet = pkl.load(self.sonnet_f) # self.sonnet_f.close() self.sonnet = indexer.PIndex("AllSonnets.txt") self.gaming_players = [] #record the gaming players self.wolves = grp.Group() #add the wolves to a seperate chat group self.wg = [] self.dead = [] self.newkilled = '' self.newpoisoned = '' self.poll = {} self.pollNumber = 0 self.values = []
def __init__(self): self.new_clients = [] # list of new sockets of which the user id is not known self.logged_name2sock = {} # dictionary mapping username to socket self.logged_sock2name = {} # dict mapping socket to user name self.all_sockets = [] self.group = grp.Group() # start server self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server.bind(SERVER) self.server.listen(5) self.all_sockets.append(self.server) # initialize past chat indices self.indices = {} # sonnet self.sonnet = indexer.PIndex("AllSonnets.txt")
def __init__(self): self.new_clients = [] #list of new sockets of which the user id is not known self.logged_name2sock = {} #dictionary mapping username to socket self.logged_sock2name = {} # dict mapping socket to user name self.all_sockets = [] self.group = grp.Group() #tictactoe incorporation self.ttt = t.TicTacToe() #start server self.server=socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server.bind(SERVER) self.server.listen(5) self.all_sockets.append(self.server) #initialize past chat indices self.indices={} # sonnet # self.sonnet_f = open('AllSonnets.txt.idx', 'rb') # self.sonnet = pkl.load(self.sonnet_f) # self.sonnet_f.close() self.sonnet = indexer.PIndex("AllSonnets.txt") self.public_key1 = 71031 self.public_key2 = 20573
def __init__(self): self.new_clients = [] #list of new sockets of which the user id is not known self.logged_name2sock = {} #dictionary mapping username to socket self.logged_sock2name = {} # dict mapping socket to user name self.all_sockets = [] self.group = grp.Group() #start server self.server=socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.server.bind(SERVER) self.server.listen(5) self.all_sockets.append(self.server) #initialize past chat indices self.indices={} #sonnet indexing self.sonnet = indexer.PIndex("AllSonnets.txt") #render stuff self.conf = None self.height = None self.rendered = None self.starter = None self.pieces = None
def __init__(self): self.new_clients = [] # list of new sockets of which the user id is not known self.logged_name2sock = {} # dictionary mapping username to socket self.logged_sock2name = {} # dict mapping socket to user name self.all_sockets = [] self.group = grp.Group() # start server self.server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.server.bind(SERVER) self.server.listen(5) self.all_sockets.append(self.server) # initialize past chat indices, TO store chat history. # indices will assigned later when there is user logged in self.indices = {} # sonnet self.sonnet = indexer.PIndex("AllSonnets.txt") self.game2_white_matrix = [] self.game2_black_matrix = [] self.game2_color_matrix = [[0]*19 for i in range(19)] self.game2_state = '' self.player1 = '' self.player2 = '' self.initialize_matrix()
def handle_msg(self, from_sock): #read msg code msg = myrecv(from_sock) if len(msg) > 0: #============================================================================== # handle connect request #============================================================================== msg = json.loads(msg) if msg["action"] == "connect": to_name = msg["target"] from_name = self.logged_sock2name[from_sock] if to_name == from_name: msg = json.dumps({"action": "connect", "status": "self"}) # connect to the peer elif self.group.is_member(to_name): to_sock = self.logged_name2sock[to_name] self.group.connect(from_name, to_name) the_guys = self.group.list_me(from_name) msg = json.dumps({ "action": "connect", "status": "success" }) for g in the_guys[1:]: to_sock = self.logged_name2sock[g] mysend( to_sock, json.dumps({ "action": "connect", "status": "request", "from": from_name })) else: msg = json.dumps({ "action": "connect", "status": "no-user" }) mysend(from_sock, msg) #============================================================================== # handle messeage exchange: one peer for now. will need multicast later #============================================================================== elif msg["action"] == "exchange": from_name = self.logged_sock2name[from_sock] #said = msg["from"]+msg["message"] said = text_proc(msg["message"], from_name) self.indices[from_name].add_msg_and_index(said) the_guys = self.group.list_me(from_name) for g in the_guys[1:]: to_sock = self.logged_name2sock[g] # IMPLEMENTATION # ---- start your code ---- # self.indices[g].add_msg_and_index(said) mysend( to_sock, json.dumps({ 'action': 'exchange', 'from': msg['from'], 'message': msg["message"] })) # ---- end of your code --- # #============================================================================== # listing available peers #============================================================================== elif msg["action"] == "list": from_name = self.logged_sock2name[from_sock] # IMPLEMENTATION # ---- start your code ---- # msg = self.group.list_all(from_name) # ---- end of your code --- # mysend(from_sock, json.dumps({ "action": "list", "results": msg })) #============================================================================== # retrieve a sonnet #============================================================================== elif msg["action"] == "poem": # IMPLEMENTATION # ---- start your code ---- # sonnets = indexer.PIndex("AllSonnets.txt") index = msg['target'] poem_list = sonnets.get_poem(int(index)) poem = '\n'.join(poem_list) print('here:\n', poem) # ---- end of your code --- # mysend(from_sock, json.dumps({ "action": "poem", "results": poem })) #============================================================================== # time #============================================================================== elif msg["action"] == "time": ctime = time.strftime('%d.%m.%y,%H:%M', time.localtime()) mysend(from_sock, json.dumps({ "action": "time", "results": ctime })) #============================================================================== # search #============================================================================== elif msg["action"] == "search": # IMPLEMENTATION # ---- start your code ---- # term = msg['target'] from_name = self.logged_sock2name[from_sock] rslt = self.indices[from_name].search(term) search_rslt = str([i[1] for i in rslt]) print('server side search: ' + search_rslt) # ---- end of your code --- # mysend( from_sock, json.dumps({ "action": "search", "results": search_rslt })) #============================================================================== # the "from" guy has had enough (talking to "to")! #============================================================================== elif msg["action"] == "disconnect": from_name = self.logged_sock2name[from_sock] the_guys = self.group.list_me(from_name) self.group.disconnect(from_name) the_guys.remove(from_name) if len(the_guys) == 1: # only one left g = the_guys.pop() to_sock = self.logged_name2sock[g] mysend(to_sock, json.dumps({"action": "disconnect"})) #============================================================================== # the "from" guy really, really has had enough #============================================================================== else: #client died unexpectedly self.logout(from_sock)