It first contacts the Dispatcher to inquire which available servers have the function required. If such a server is available the dispatcher returns the port number and IP address. The server's network interface was implemented to process requests concurrently. Then it waits for clients to accept. This server provides a static address where roaming servers may advertise their availability and services.
Dispatch keeps the data in a lookup table to provide to clients.
Dispatch accepts connections iteratively and listens on only one socket. Connect ions of type 0 are servers with services to advertise, type 1 is servers whom wish to be removed from the lookup table and type 2 are clients looking up available services. We used a round-robin method of choosing available servers. The total run time of the 2nd client will be independant of the first.