This is an interesting question about scaling in a serious situation.
You essentially ask: "How to establish N connections to an Internet service, where N β 250,000."
The only way to do this efficiently and effectively is to group. You cannot do this on one host, so you will need to fragment and split your client base into several different servers, so that each of them processes only a subset.
The idea would be for one server to open as few connections as possible (evenly distributing the connection) while maintaining enough connections to make any service you support, keeping communication between servers at a minimum. This will mean that any two connected connections (for example, two accounts that talk a lot with each other) must be on the same host.
You will need servers and network infrastructure that can handle this. You will need a subnet of IP addresses, each server will have to be connected without taking into account the status of the Internet (i.e. your router will not do NAT so as not to monitor 250,000+ connections).
You need to talk to AOL. There is no way that AOL can handle this connection level without considering disconnecting your connection. Any service of this magnitude must be coordinated with AOL, so that you and they can deal with connectivity.
There are I / O multiplexing technologies that you should explore. Scream and era come to mind.
To write this solution with mass simultaneous and telecommunication level, I would recommend to study erlang. Erlang is designed for such situations (multi-server, mass-multi-client, multi-threaded software for the telecommunication level). It is currently used for Ericsson telephone exchanges.
Jerub source share