rbt wrote: > I don't fully understand sockets, I just know enough to be dangerous. > The below is not detected by nmap, but is affected by iptables or ipsec. > Can anyone explain why that is? > > s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) > s.bind((ip_param, port_param)) > while 1: > s.listen(5)
This, by the way, is wrong. s.listen(5) just tells the stack that you would like to allow a backlog of up to 5 waiting-to-be-connected connection attempts while you are accepting another. The call doesn't block and needn't be called repeatedly. You could just as well do the call to listen first, then have an empty "while 1: pass" loop (but note that in either case it is a "busy wait", consuming 100% CPU while it runs). What you are looking for is more like this: s.listen(5) while 1: s.accept() # wait for connection, and ignore it If you want to simulate a little server to allow multiple connections, you would of course need to use the value returned by accept() and probably call close() on the client socket right away. -Peter -- http://mail.python.org/mailman/listinfo/python-list