NetAdapterSim Class Reference

Inherits com::dalsemi::onewire::adapter::NetAdapterConstants.

List of all members.


Detailed Description

NetAdapterSim is the host (or server) component for a network-based DSPortAdapter. It actually wraps the hardware DSPortAdapter and handles connections from outside sources (NetAdapter) who want to access it.

NetAdapterSim is designed to be run in a thread, waiting for incoming connections. You can run this in the same thread as your main program or you can establish the connections yourself (presumably using some higher level of security) and then call the handleConnection(Socket) {

See also:
handleConnection(Socket)}.

Once a NetAdapter is connected with the host, a version check is performed followed by a simple authentication step. The authentication is dependent upon a secret shared between the NetAdapter and the host. Both will use a default value, that each will agree with if you don't provide a secret of your own. To set the secret, add the following line to your onewire.properties file:

Optionally, the secret can be set by calling the setSecret(String) {
See also:
setSecret(String)}

The NetAdapter and NetAdapterSim support multicast broadcasts for automatic discovery of compatible servers on your LAN. To start the multicast listener for this NetAdapterSim, call the createMulticastListener() method {

See also:
createMulticastListener()}.

For information on creating the client component, see the JavaDocs for the NetAdapter.

See also:
NetAdapter
Author:
SH
Version:
1.00, 9 Jan 2002

Public Member Functions

 NetAdapterSim (String execCmd, String logFilename) throws IOException
 NetAdapterSim (String execCmd, byte[] fakeAddress, String logFile, int listenPort) throws IOException
 NetAdapterSim (String execCmd, String logFilename, boolean multiThread) throws IOException
 NetAdapterSim (String execCmd, String logFilename, int listenPort, boolean multiThread) throws IOException
 NetAdapterSim (String execCmd, String logFilename, ServerSocket serverSock) throws IOException
 NetAdapterSim (String execCmd, String logFilename, ServerSocket serverSock, boolean multiThread) throws IOException
void setSecret (String secret)
 Sets the secret used for authenticating incoming client connections.
void createMulticastListener () throws IOException,UnknownHostException
 Creates a Multicast Listener to allow NetAdapter clients to discover this NetAdapterSim automatically.
void createMulticastListener (int port) throws IOException,UnknownHostException
 Creates a Multicast Listener to allow NetAdapter clients to discover this NetAdapterSim automatically.
void createMulticastListener (int port, String group) throws IOException,UnknownHostException
 Creates a Multicast Listener to allow NetAdapter clients to discover this NetAdapterSim automatically.
void run ()
 Run method for threaded NetAdapterSim.
void handleConnection (Socket sock) throws IOException
 Handles a socket connection.
void stopHost ()
 Stops all threads and kills the server socket.

Static Public Member Functions

static void main (String[] args) throws Exception
 A Default Main Method, for launching NetAdapterSim getting the default adapter with the OneWireAccessProvider and listening on the default port specified by DEFAULT_PORT.

Protected Attributes

PrintWriter logFile
 Log file.
String execCommand
 exec command, command string to start the simulator
byte[] fakeAddress = null
 fake address, returned from all search or getAddress commands
ServerSocket serverSocket = null
 The server socket for listening for connections.
byte[] netAdapterSecret = null
 secret for authentication with the server
volatile boolean hostStopped = false
 boolean flags for stopping the host
boolean singleThreaded = true
 boolean flag to indicate whether or not the host is single or multi-threaded
Hashtable hashHandlers = null
 Map of all Service threads created, only for multi-threaded.
MulticastListener multicastListener = null
 Optional, listens for datagram packets from potential clients.
int timeoutInSeconds = 30
 timeout for socket receive, in seconds

Static Protected Attributes

static final Random rand = new Random()
 random number generator, used to issue challenges to client

Constructor & Destructor Documentation

NetAdapterSim ( String  execCmd,
String  logFilename 
) throws IOException

Creates an instance of a NetAdapterSim which wraps the provided adapter. The host listens on the default port as specified by NetAdapterConstants.

Note that the secret used for authentication is the value specified in the onewire.properties file as "NetAdapter.secret=mySecret". To set the secret to another value, use the setSecret(String) method.

Parameters:
adapter DSPortAdapter that this NetAdapterSim will proxy commands to.
Exceptions:
IOException if a network error occurs or the listen socket cannot be created on the specified port.

NetAdapterSim ( String  execCmd,
byte[]  fakeAddress,
String  logFile,
int  listenPort 
) throws IOException

Creates a single-threaded instance of a NetAdapterSim which wraps the provided adapter. The host listens on the specified port.

Note that the secret used for authentication is the value specified in the onewire.properties file as "NetAdapter.secret=mySecret". To set the secret to another value, use the setSecret(String) method.

Parameters:
adapter DSPortAdapter that this NetAdapterSim will proxy commands to.
listenPort the TCP/IP port to listen on for incoming connections
Exceptions:
IOException if a network error occurs or the listen socket cannot be created on the specified port.

NetAdapterSim ( String  execCmd,
String  logFilename,
boolean  multiThread 
) throws IOException

Creates an (optionally multithreaded) instance of a NetAdapterSim which wraps the provided adapter. The listen port is set to the default port as defined in NetAdapterConstants.

Note that the secret used for authentication is the value specified in the onewire.properties file as "NetAdapter.secret=mySecret". To set the secret to another value, use the setSecret(String) method.

Parameters:
adapter DSPortAdapter that this NetAdapterSim will proxy commands to.
multiThread if true, multiple TCP/IP connections are allowed to interact simulataneously with this adapter.
Exceptions:
IOException if a network error occurs or the listen socket cannot be created on the specified port.

NetAdapterSim ( String  execCmd,
String  logFilename,
int  listenPort,
boolean  multiThread 
) throws IOException

Creates an (optionally multi-threaded) instance of a NetAdapterSim which wraps the provided adapter. The host listens on the specified port.

Note that the secret used for authentication is the value specified in the onewire.properties file as "NetAdapter.secret=mySecret". To set the secret to another value, use the setSecret(String) method.

Parameters:
adapter DSPortAdapter that this NetAdapterSim will proxy commands to.
listenPort the TCP/IP port to listen on for incoming connections
multiThread if true, multiple TCP/IP connections are allowed to interact simulataneously with this adapter.
Exceptions:
IOException if a network error occurs or the listen socket cannot be created on the specified port.

NetAdapterSim ( String  execCmd,
String  logFilename,
ServerSocket  serverSock 
) throws IOException

Creates an instance of a NetAdapterSim which wraps the provided adapter. The host listens on the default port as specified by NetAdapterConstants.

Note that the secret used for authentication is the value specified in the onewire.properties file as "NetAdapter.secret=mySecret". To set the secret to another value, use the setSecret(String) method.

Parameters:
adapter DSPortAdapter that this NetAdapterSim will proxy commands to.
serverSock the ServerSocket for incoming connections
Exceptions:
IOException if a network error occurs or the listen socket cannot be created on the specified port.

NetAdapterSim ( String  execCmd,
String  logFilename,
ServerSocket  serverSock,
boolean  multiThread 
) throws IOException

Creates an (optionally multi-threaded) instance of a NetAdapterSim which wraps the provided adapter. The host listens on the specified port.

Note that the secret used for authentication is the value specified in the onewire.properties file as "NetAdapter.secret=mySecret". To set the secret to another value, use the setSecret(String) method.

Parameters:
adapter DSPortAdapter that this NetAdapterSim will proxy commands to.
serverSock the ServerSocket for incoming connections
multiThread if true, multiple TCP/IP connections are allowed to interact simulataneously with this adapter.
Exceptions:
IOException if a network error occurs or the listen socket cannot be created on the specified port.


Member Function Documentation

void setSecret ( String  secret  ) 

Sets the secret used for authenticating incoming client connections.

Parameters:
secret The shared secret information used for authenticating incoming client connections.

void createMulticastListener (  )  throws IOException,UnknownHostException

Creates a Multicast Listener to allow NetAdapter clients to discover this NetAdapterSim automatically.

Uses defaults for Multicast group and port.

void createMulticastListener ( int  port  )  throws IOException,UnknownHostException

Creates a Multicast Listener to allow NetAdapter clients to discover this NetAdapterSim automatically.

Uses default for Multicast group.

Parameters:
port The port the Multicast socket will receive packets on

void createMulticastListener ( int  port,
String  group 
) throws IOException,UnknownHostException

Creates a Multicast Listener to allow NetAdapter clients to discover this NetAdapterSim automatically.

Parameters:
port The port the Multicast socket will receive packets on
group The group the Multicast socket will join

void run (  ) 

Run method for threaded NetAdapterSim.

Maintains server socket which waits for incoming connections. Whenever a connection is received launches it services the socket or (optionally) launches a new thread for servicing the socket.

void handleConnection ( Socket  sock  )  throws IOException

Handles a socket connection.

If single-threaded, the connection is serviced in the current thread. If multi-threaded, a new thread is created for servicing this connection.


The documentation for this class was generated from the following file:

Generated on Thu Aug 28 15:42:29 2008 for 1-Wire API for .NET by  doxygen 1.5.6