I have written a python socketServer program and I have a few questions that I hope the group can answer... here is a simple version of the server:
class tr_handler(SocketServer.StreamRequestHandler): def handle(self): data = self.rfile.readline(300) data = str.strip(data) bytes = str(len(data)) public_ip = self.client_address[0] serv_date = time.strftime('%Y-%m-%d', time.localtime()) serv_time = time.strftime('%H:%M:%S', time.localtime()) # Note that 'data; comes from the client. fp = file('/home/rbt/Desktop/tr_report.txt', 'a') fp.write(data+"\t"+serv_date+"\t"+serv_time+"\t"+public_ip+"\t"+bytes+"\n") fp.close() if __name__=='__main__': server = SocketServer.TCPServer( ('', 55503), tr_handler) server.serve_forever() --------------------------------------- 1. Do I need to use threads to handle requests, if so, how would I incorporate them? The clients are light and fast never sending more than 270 bytes of data and never connecting for more than 10 seconds at a time. There are currently 500 clients and potentially there could be a few thousand... how high does the current version scale? 2. What's the proper way to handle server exceptions (server stops, fails to run at boot, etc.)? 3. How do I keep people from tampering with the server? The clients send strings of data to the server. All the strings start with x and end with y and have z in the middle. Is requiring x at the front and y at the back and z someplace in the middle enough to keep people out? I'm open to suggestions. Thanks! rbt -- http://mail.python.org/mailman/listinfo/python-list