com.distinct.rpc
Class ClientUDP

java.lang.Object
  |
  +--com.distinct.rpc.ClientGeneric
        |
        +--com.distinct.rpc.ClientUDP
All Implemented Interfaces:
java.io.Serializable

public class ClientUDP
extends ClientGeneric

Implementation of the RPC protocol via UDP.

See Also:
ClientGeneric, Serialized Form

Constructor Summary
ClientUDP(java.net.InetAddress host, int prog, int vers)
          Creates a new UDP protocol object.
ClientUDP(java.net.InetAddress host, int prog, int vers, int port)
          Creates a new UDP protocol object and connects it to a server with a known port.
 
Method Summary
 void Call(int prog, int vers, int proc, XDRType in, XDRType out)
          Calls the server.
 void close()
          Closes the connection and frees the socket resource.
 void setResend(int milliseconds)
          Changes the timeout value for retransmission of the request (UDP only, default is 5s).
 void setRetryTimeout(int timeout)
          Changes the timeout value for retransmission of the request (default is 5s).
 void setTimeout(int timeout)
          Changes the timeout value for waiting on server replies (default is 25s).
 
Methods inherited from class com.distinct.rpc.ClientGeneric
Call, getReturnedVerifier, setCredential, setVerifier
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClientUDP

public ClientUDP(java.net.InetAddress host,
                 int prog,
                 int vers,
                 int port)
          throws java.io.IOException
Creates a new UDP protocol object and connects it to a server with a known port. (No interaction with a portmapper)
Parameters:
host - The host on which the server lives. In an applet this must be the host where the applet comes from.
prog - The program ID of the server as defined in the .x IDL file.
vers - The program version of the server as defined in the .x IDL file.
port - The port on which the server listens.
Throws:
java.io.IOException - When the socket could not be opened.

ClientUDP

public ClientUDP(java.net.InetAddress host,
                 int prog,
                 int vers)
          throws RPCError,
                 java.io.IOException
Creates a new UDP protocol object. Calls the portmapper to get the port information.
Parameters:
host - The host on which the server lives. In an applet this must be the host where the applet comes from.
prog - The program ID of the server as defined in the .x IDL file.
vers - The program version of the server as defined in the .x IDL file.
Throws:
RPCError - When the port can not be found in the portmapper (perhaps there is even no portmapper running).
java.io.IOException - When the socket could not be opened.
Method Detail

Call

public void Call(int prog,
                 int vers,
                 int proc,
                 XDRType in,
                 XDRType out)
          throws RPCError,
                 java.io.IOException
Calls the server.
Overrides:
Call in class ClientGeneric
Parameters:
prog - The program ID of the server as defined in the .x IDL file.
vers - The program version of the server as defined in the .x IDL file.
proc - The ID of the request function as defined in the .x IDL file.
in - The input parameter (as it has to be marshalled it must be derived from XDRType).
out - The output parameter (as it has to be marshalled it must be derived from XDRType).
Throws:
java.io.IOException - When the call fails because the socket connetion fails.
RPCError - When the calls fails for any other reason.

close

public void close()
Closes the connection and frees the socket resource.
Overrides:
close in class ClientGeneric

setTimeout

public void setTimeout(int timeout)
Changes the timeout value for waiting on server replies (default is 25s).
Overrides:
setTimeout in class ClientGeneric
Parameters:
timeout - The new timeout value in ms (0 means no timeout at all, -1 means immediate return).

setRetryTimeout

public void setRetryTimeout(int timeout)
Changes the timeout value for retransmission of the request (default is 5s).
Parameters:
timeout - The new timeout value.

setResend

public void setResend(int milliseconds)
Changes the timeout value for retransmission of the request (UDP only, default is 5s).
Overrides:
setResend in class ClientGeneric
Parameters:
milliseconds - The new timeout value.