Hi Andy,

Thanks for the clarification, but I still don't quite understand what 
you are trying to do here.

You said originally:

//
The reason for this is to be able to paralelize web page downloads from
a site that has a max of 1 hit per seccond per IP address.
//

And then in a follow-up post: (Which clarified that you are writing a 
HTTP client of some sort I think).

//
now if the url was for a page that had no content, except for the IP
address
//

So you seem to have control over both client and server here I think?

My networking isn't that great, and I'm a Ruby-Newbie...but I think from 
the client side this is a non-issue: the client just connects to an IP 
(or host) directly and a port: if you know the IPs ahead of time, just 
connect to them.

So I think then you are designing something like:

- A webserver which has multiple NICs , and one (perhaps) 'master' NIC.
- This webserver will return as plain-text (or XML or some data-format) 
a list of these IP addresses.
- The client is able to make an initial-request to the 'master' NIC/URL 
to retrieve a list of other hosts (the fact they are in fact located on 
the same machine is not really relevant to the client).
- Once the client has this list of IPs it can just connect to them and 
download whatever it wants.

So, (I think): so long as your webserver is listening on all NICs (or 
you have multiple dedicated webservers listening on per NIC), you have a 
fairly straight-forward programming task I think:

- A servlet to generate the IP address file, which sits on the server.
- Some client code to retrieve and process that IP address file and set 
of some threads in parallel.

Correct ?

I guess you might want to share some sort of context between the 
different parallel clients: you could use a cookie and (somesort) of 
shared background context between web-servers : maybe a database, or 
files in a shared directory ?

In short: I *think* there is essentially no big deal about getting a TCP 
client to talk to a specific NIC - you just address with the IP address 
and everything is just taken care of at the network layer.

I think you are writing an ad-hoc load-balancer here by the sound of 
it...

Cheers

John

-- 
Posted via http://www.ruby-forum.com/.