Here are the actual scripts: ***BEGIN asynchat_serv.py *** #!/usr/bin/python ### This is the game server ### import asynchat import asyncore import socket
class GameServer(asyncore.dispatcher): """ The GameServer (mastermind controlling all) """ def __init__(self, port): asyncore.dispatcher.__init__(self) # create connection self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.set_reuse_addr() here = ("", port) self.bind(here) self.listen(5) def handle_accept(self): # accept a connection and create a chat object to handle it print "Accepting connection" GameChat(self, self.accept()) class GameChat(asynchat.async_chat): """ This is the GameChat class. Collects messages and updates other clients. """ def __init__(self, server, (conn, addr)): asynchat.async_chat.__init__(self, conn) self.set_terminator('\n') self.server = server self.buffer = '' def collect_incoming_data(self, data): self.buffer = self.buffer + data def found_terminator(self): # handle end of message data = self.buffer # clear the buffer self.buffer = '' print "Server Received: %s" % (data) cmd = data[:3] message = data[4:] # check for any special commands if cmd == "HEL": print "%s said Hello" % message self.push("Hello %s\n" % message) def handle_close(self): print 'Closing' self.close() if __name__ == "__main__": # test the server here gs = GameServer(5000) #asyncore.loop() # I think asyncore has a longer timeout because it takes a long time to kill with ctrl-c while (1): asyncore.poll(timeout=.01) *** END asynchat_serv.py *** *** BEGIN asynchat_client.py *** # the client side import asynchat import asyncore import socket class GameClient(asynchat.async_chat): """ GameClient class. Connects to the server and sends messages. """ def __init__(self, host, port): asynchat.async_chat.__init__(self) self.create_socket(socket.AF_INET, socket.SOCK_STREAM) self.buffer = "" self.set_terminator("\n") self.address = (host, port) # address of the server to contact self.connect(self.address) self.push("HEL BOB\n\n") def handle_connect(self): print "Connection Complete" def collect_incoming_data(self, data): self.buffer = self.buffer + data def found_terminator(self): data = self.buffer self.buffer = "" print "Client received: %s" % (data) def handle_close(self): self.close() if __name__ == "__main__": gc = GameClient("localhost", 5000) while (1): asyncore.poll(timeout=.01) *** END asynchat_client.py *** On Tue, Apr 29, 2008 at 6:57 PM, Jake b <[EMAIL PROTECTED]> wrote: > Brian: I am getting a 404 not found on both of your links. > > -- > Jake > -- Brian Davis [EMAIL PROTECTED] [EMAIL PROTECTED]