I've noticed that when I'm at home using a very fast IP, there are times I have up to 50 connections. However, when I'm at the family ranch using Hugh's Satellite the most I ever have is 8. It would seem then the client determines the speed and connects accordingly.
Is this correct or is something else going on?
net.cpp
static const int MAX_OUTBOUND_CONNECTIONS = 8;
Bitcoin defines a limit for the maximum number of outbound connections the client will attempt to make. Once this limit is reached the client will stop trying to make new connections, but will still accept new incoming connections.
You can recompile and increase this number.