public static List<PortalServerInfo> getServerList(String serverListUrl)
	{
		ArrayList<PortalServerInfo> toRet = new ArrayList<PortalServerInfo>();
		List<String> webpageContents = NetworkUtilities.readWebPage(serverListUrl);
		for(String currLine:webpageContents)
		{
			if(currLine != null)
			{
				String[] parts = currLine.split(":");
				if(parts.length == 3)
				{
					try
					{
						String serverIPAddr = null;
						String portNumber = null;
						int preferenceNumber = 0;
						if(InetAddress.getAllByName(parts[0]) != null && Integer.parseInt(parts[1]) > 0 && Integer.parseInt(parts[2]) > 0)
						{
							serverIPAddr = parts[0];
							portNumber = parts[1];
							preferenceNumber = Integer.parseInt(parts[2]);
						}
						PortalServerInfo currServInfo = new PortalServerInfo();
						currServInfo.serverNetworkName = serverIPAddr;
						currServInfo.serverNetworkPort = portNumber;
						currServInfo.preferenceInfo = preferenceNumber;
						toRet.add(currServInfo);
					}
					catch(Exception e)
					{
						//We ignore.
					}
				}
			}
		}
		
		//Here we are sorting based on preference, server having highest preference will be at the first
		Collections.sort(toRet, new Comparator<PortalServerInfo>() 
				{
					@Override
					public int compare(PortalServerInfo o1, PortalServerInfo o2) 
					{
						return o2.preferenceInfo - o1.preferenceInfo;
					}
				});
		return toRet;
	}