本文整理汇总了Java中sun.rmi.transport.tcp.TCPEndpoint类的典型用法代码示例。如果您正苦于以下问题:Java TCPEndpoint类的具体用法?Java TCPEndpoint怎么用?Java TCPEndpoint使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
TCPEndpoint类属于sun.rmi.transport.tcp包,在下文中一共展示了TCPEndpoint类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getObject
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
public Registry getObject ( final String command ) throws Exception {
String host;
int port;
int sep = command.indexOf(':');
if ( sep < 0 ) {
port = new Random().nextInt(65535);
host = command;
}
else {
host = command.substring(0, sep);
port = Integer.valueOf(command.substring(sep + 1));
}
ObjID id = new ObjID(new Random().nextInt()); // RMI registry
TCPEndpoint te = new TCPEndpoint(host, port);
UnicastRef ref = new UnicastRef(new LiveRef(id, te, false));
RemoteObjectInvocationHandler obj = new RemoteObjectInvocationHandler(ref);
Registry proxy = (Registry) Proxy.newProxyInstance(JRMPClient.class.getClassLoader(), new Class[] {
Registry.class
}, obj);
return proxy;
}
示例2: getObject
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
public Registry getObject ( String connection ) throws Exception {
String host;
int port;
int sep = connection.indexOf(':');
if ( sep < 0 ) {
port = new Random().nextInt(65535);
host = connection;
}
else {
host = connection.substring(0, sep);
port = Integer.valueOf(connection.substring(sep + 1));
}
ObjID id = new ObjID(new Random().nextInt()); // RMI registry
TCPEndpoint te = new TCPEndpoint(host, port);
UnicastRef ref = new UnicastRef(new LiveRef(id, te, false));
RemoteObjectInvocationHandler obj = new RemoteObjectInvocationHandler(ref);
Registry proxy = (Registry) Proxy.newProxyInstance(JRMPClient.class.getClassLoader(), new Class[] {
Registry.class
}, obj);
return proxy;
}
示例3: getRegistryPort
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
/**
* Returns the port number the RMI {@link Registry} is running on.
*
* @param registry the registry to find the port of.
* @return the port number the registry is using.
* @throws RuntimeException if there was a problem getting the port number.
*/
public static int getRegistryPort(Registry registry) {
int port = -1;
try {
RemoteRef remoteRef = ((RegistryImpl)registry).getRef();
LiveRef liveRef = ((UnicastServerRef)remoteRef).getLiveRef();
Endpoint endpoint = liveRef.getChannel().getEndpoint();
TCPEndpoint tcpEndpoint = (TCPEndpoint) endpoint;
port = tcpEndpoint.getPort();
} catch (Exception ex) {
throw new RuntimeException("Error getting registry port.", ex);
}
return port;
}
示例4: exceptionReceivedFromServer
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
/**
* Routine that causes the stack traces of remote exceptions to be
* filled in with the current stack trace on the client. Detail
* exceptions are filled in iteratively.
*/
protected void exceptionReceivedFromServer(Exception ex) throws Exception {
serverException = ex;
StackTraceElement[] serverTrace = ex.getStackTrace();
StackTraceElement[] clientTrace = (new Throwable()).getStackTrace();
StackTraceElement[] combinedTrace =
new StackTraceElement[serverTrace.length + clientTrace.length];
System.arraycopy(serverTrace, 0, combinedTrace, 0,
serverTrace.length);
System.arraycopy(clientTrace, 0, combinedTrace, serverTrace.length,
clientTrace.length);
ex.setStackTrace(combinedTrace);
/*
* Log the details of a server exception thrown as a result of a
* remote method invocation.
*/
if (UnicastRef.clientCallLog.isLoggable(Log.BRIEF)) {
/* log call exception returned from server before it is rethrown */
TCPEndpoint ep = (TCPEndpoint) conn.getChannel().getEndpoint();
UnicastRef.clientCallLog.log(Log.BRIEF, "outbound call " +
"received exception: [" + ep.getHost() + ":" +
ep.getPort() + "] exception: ", ex);
}
throw ex;
}
示例5: remoteEquals
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
public boolean remoteEquals(Object obj) {
if (obj != null && obj instanceof LiveRef) {
LiveRef ref = (LiveRef) obj;
TCPEndpoint thisEp = ((TCPEndpoint) ep);
TCPEndpoint refEp = ((TCPEndpoint) ref.ep);
RMIClientSocketFactory thisClientFactory =
thisEp.getClientSocketFactory();
RMIClientSocketFactory refClientFactory =
refEp.getClientSocketFactory();
/**
* Fix for 4254103: LiveRef.remoteEquals should not fail
* if one of the objects in the comparison has a null
* server socket. Comparison should only consider the
* following criteria:
*
* hosts, ports, client socket factories and object IDs.
*/
if (thisEp.getPort() != refEp.getPort() ||
!thisEp.getHost().equals(refEp.getHost()))
{
return false;
}
if ((thisClientFactory == null) ^ (refClientFactory == null)) {
return false;
}
if ((thisClientFactory != null) &&
!((thisClientFactory.getClass() ==
refClientFactory.getClass()) &&
(thisClientFactory.equals(refClientFactory))))
{
return false;
}
return (id.equals(ref.id));
} else {
return false;
}
}
示例6: read
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
public static LiveRef read(ObjectInput in, boolean useNewFormat)
throws IOException, ClassNotFoundException
{
Endpoint ep;
ObjID id;
// Now read in the endpoint, id, and result flag
// (need to choose whether or not to read old JDK1.1 endpoint format)
if (useNewFormat) {
ep = TCPEndpoint.read(in);
} else {
ep = TCPEndpoint.readHostPortFormat(in);
}
id = ObjID.read(in);
boolean isResultStream = in.readBoolean();
LiveRef ref = new LiveRef(id, ep, false);
if (in instanceof ConnectionInputStream) {
ConnectionInputStream stream = (ConnectionInputStream)in;
// save ref to send "dirty" call after all args/returns
// have been unmarshaled.
stream.saveRef(ref);
if (isResultStream) {
// set flag in stream indicating that remote objects were
// unmarshaled. A DGC ack should be sent by the transport.
stream.setAckNeeded();
}
} else {
DGCClient.registerRefs(ep, Arrays.asList(new LiveRef[] { ref }));
}
return ref;
}
示例7: makeRegistryImpl
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
private static Object makeRegistryImpl ( String codebase, String clazz ) throws IllegalArgumentException, Exception {
Class<?> regcl = Class.forName("sun.management.jmxremote.SingleEntryRegistry");
Object reg = Reflections.createWithoutConstructor(regcl);
Reflections.setFieldValue(reg, "name", "exp");
TCPEndpoint te = new TCPEndpoint("127.0.0.1", 1337);
LiveRef liveRef = new LiveRef(new ObjID(), te, true);
UnicastRef value = new UnicastRef(liveRef);
Reflections.setFieldValue(reg, "ref", value);
Reflections.setFieldValue(reg, "object", makeReference(codebase, clazz));
return reg;
}
示例8: run
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
public void run () {
try {
synchronized(this) {
ep = TCPEndpoint.getLocalEndpoint(0);
}
} catch (Exception e) {
throw new RuntimeException();
} finally {
synchronized(this) {
this.notify();
}
}
}
示例9: getAddress
import sun.rmi.transport.tcp.TCPEndpoint; //导入依赖的package包/类
public static String getAddress(final Service svc)
throws RemoteException {
final RemoteObjectInvocationHandler h = (RemoteObjectInvocationHandler) getInvocationHandler(svc);
final LiveRef ref = ((UnicastRef) h.getRef()).getLiveRef();
final Channel channel = ref.getChannel();
final TCPEndpoint endpoint = (TCPEndpoint) channel.getEndpoint();
return endpoint.getHost() + ":" + endpoint.getPort();
}