* @return the identifier of the new endpoint
* @throws IOException for any I/O error
*/
public synchronized String open(String host, int port) throws IOException {
Socket socket = new Socket(host, port);
String id = new ObjID().toString();
SocketInfo result = new SocketInfo(id, socket);
_sockets.put(id, result);
startReaper();
return id;
}