Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.act365.net.echo
Class EchoServer  view EchoServer download EchoServer.java

java.lang.Object
  extended byjava.lang.Thread
      extended bycom.act365.net.echo.EchoServer
All Implemented Interfaces:
java.lang.Runnable

public class EchoServer
extends java.lang.Thread

EchoServer acts as the server for the TCP echo service. Usage: EchoServer -p protocol -l localhost localport. NB When a TCPJ protocol has been chosen, the server will be created with a backlog of 1 (as against the standard Berkeley value of 5) because of a limitation in the current TCPJ implementation.

-p protocol (optional) defines the socket protocol to be used. By default, the JDK TCP implementation will be used. The alternatives are TCPJ, RawTCP or RawTCPJ. (NB The RawTCP protocol will behave identically to TCP because no DatagramSocket objects will be instantiated. However, a DatagramSocket is always used by TCPJ, so the behaviour of TCPJ and RawTCPJ will differ).

-l localhost (optional) should be specified if the protocol has been set to RawTCPJ. The information will be used to construct the IP header.

localport is the port to be used by the echo server.


Nested Class Summary
 
Nested classes inherited from class java.lang.Thread
java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
(package private)  java.net.ServerSocket server
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
(package private) EchoServer(int port, java.net.InetAddress localaddr)
           
 
Method Summary
protected  void finalize()
          Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed.
static void main(java.lang.String[] args)
           
 void run()
          The method of Thread that will be run if there is no Runnable object associated with the Thread.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

server

java.net.ServerSocket server
Constructor Detail

EchoServer

EchoServer(int port,
           java.net.InetAddress localaddr)
Method Detail

main

public static void main(java.lang.String[] args)

run

public void run()
Description copied from class: java.lang.Thread
The method of Thread that will be run if there is no Runnable object associated with the Thread. Thread's implementation does nothing at all.


finalize

protected void finalize()
Description copied from class: java.lang.Object
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed. You would think that this means it eventually is called on every Object, but this is not necessarily the case. If execution terminates abnormally, garbage collection does not always happen. Thus you cannot rely on this method to always work. For finer control over garbage collection, use references from the java.lang.ref package.

Virtual Machines are free to not call this method if they can determine that it does nothing important; for example, if your class extends Object and overrides finalize to do simply super.finalize().

finalize() will be called by a java.lang.Thread that has no locks on any Objects, and may be called concurrently. There are no guarantees on the order in which multiple objects are finalized. This means that finalize() is usually unsuited for performing actions that must be thread-safe, and that your implementation must be use defensive programming if it is to always work.

If an Exception is thrown from finalize() during garbage collection, it will be patently ignored and the Object will still be destroyed.

It is allowed, although not typical, for user code to call finalize() directly. User invocation does not affect whether automatic invocation will occur. It is also permitted, although not recommended, for a finalize() method to "revive" an object by making it reachable from normal code again.

Unlike constructors, finalize() does not get called for an object's superclass unless the implementation specifically calls super.finalize().

The default implementation does nothing.