socketServer questions

rbt rbt at athop1.ath.vt.edu
Fri Oct 7 11:34:07 EDT 2005


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










More information about the Python-list mailing list