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(Sock etServer.Stream RequestHandler) :
def handle(self):
data = self.rfile.read line(300)
data = str.strip(data)
bytes = str(len(data))
public_ip = self.client_add ress[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__=='__ma in__':
server = SocketServer.TC PServer( ('', 55503), tr_handler)
server.serve_fo rever()
---------------------------------------
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
that I hope the group can answer... here is a simple version of the
server:
class tr_handler(Sock etServer.Stream RequestHandler) :
def handle(self):
data = self.rfile.read line(300)
data = str.strip(data)
bytes = str(len(data))
public_ip = self.client_add ress[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__=='__ma in__':
server = SocketServer.TC PServer( ('', 55503), tr_handler)
server.serve_fo rever()
---------------------------------------
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
Comment