In article <[EMAIL PROTECTED]>, "Alan Wright" <[EMAIL PROTECTED]> wrote:
> Thanks for the feedback. > > Using the socket in a list is great > > However, as i imagined, I now get a limit of around 1500 conns before the > system crashes out, also i have noticed, that the ports loop back to 1025 > when they hit 5000. > > Any ideas on how to make the list/socket get to around 50K Yikes. Not on any box I know of. A given process is limited in how many descriptors it can have open at once. I don't know of any that will allow anywhere near 50k. Somewhere in the 1-2000 range would be more typical. The 1500 you report is not at all surprising. You might try creating a bunch of child processes with os.system() or something of that ilk. Create 50 processes and have each one open 1000 sockets. The next thing you have to worry about is whether the OS can handle 50k file descriptors open per-system. Or 50k sockets, or TCP connections. I wouldn't be too surprised if many systems couldn't. The address space (TCP port numbers) is 16-bit (unsigned), or about 65k, but you may well run into some other system limit long before you exhaust the theoretically available ports. Something like Scapy, recommended by others, may indeed be able to generate all those SYN packets you want, but that doesn't mean you'll get all the open connections you seek. You send a SYN packet to the remote host, and it sends back a SYN/ACK. The local kernel now sees a SYN/ACK packet for a port it doesn't know about. I'm not sure what the RFCs say about that, but I wouldn't be surprised if the kernel ends up sending a RST or maybe a FIN or something like that. The kernel owns the ports; it's not nice to try and mess with them on your own. -- http://mail.python.org/mailman/listinfo/python-list