Stringified proxies come in two forms — direct proxies and indirect proxies.
Direct proxies have the form
<identity>:<endpoints>. In turn, the stringified form of an object identity is
[Ice:<category>/]<name>. The category is optional and, if not present, the category is the empty string. The endpoints comprise a colon-separated list of possible addresses for the server. Each address has a protocol identifier, followed by protocol-specific addressing information. Currently, Ice supports
ssl. The addressing information for each of these protocols is the same:
-h <host> and
-p <port>. When a client makes the first invocation on a proxy, the Ice run time tries to establish a connection to each of the endpoints in a random order. If connection attempts to all of the endpoints fail, the run time raises an exception (in most cases, a
Indirect proxies have the form
<identity>[:@<adapter-name>], with the adapter name being optional. Note that an indirect proxy contains no addressing information: you cannot specify both an adapter name and a list of endpoints, that is, a proxy of the form
<identity>@<adapter>:<endpoints> is syntactically invalid. To get a list of addresses from an indirect proxy so it can bind to the target object, the client-side run time consults a locator (the address of which is controlled by the
Ice.Default.Locator property) and asks the locator for the addresses at which an object with the given identity and adapter name can be found.