ThreadingUDPSocketServer drop/reject?
James R. Saker Jr.
jsaker at americanrelay.com
Fri Sep 24 10:18:56 EDT 2004
Didn't see a reply to my request but I figured it out using
DatagramRequestHandler under SocketServer:
"USAGE: %s <port>"
from SocketServer import DatagramRequestHandler, UDPServer
from sys import argv
class EchoHandler(DatagramRequestHandler):
def handle(self):
## Assume following three addresses are legit; var placed
## here for simplicity in test; would be referred from elsewhere
## in real instance instead of local 'addrList'
addrList = ['192.168.1.1', '192.168.1.2', '192.168.1.3']
if self.client_address[0] in addrList:
print "Client connected:", self.client_address
message = self.rfile.read()
print "Message was: %s" % message
self.wfile.write(message)
else:
print "Rejected %s" % self.client_address[0]
if len(argv) != 2:
print __doc__ % argv[0]
else:
UDPServer(('',int(argv[1])), EchoHandler).serve_forever()
Result: Hosts in addrList can access echo server; hosts not in addrList
are rejected (not sure if this a UDP drop or reject; need to look into
further I'd expect on detailed UDP drop/reject behavior.
Jamie
More information about the Python-list
mailing list