Overview | Package | Class | Tree | Deprecated | Index | Help
| SNMP Stack 5_1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## uk.co.westhawk.snmp.net
Class TCPSocket

    java.lang.Object
      |
      +--uk.co.westhawk.snmp.net.TCPSocket

All Implemented Interfaces:
  ContextSocketFace

public class TCPSocket
extends java.lang.Object
implements ContextSocketFace

This is a wrapper class around the standard Socket. This sends packets over TCP.

This is part of what is called "Reliable SNMP". SNMP usually goes over UDP. That is why there is a retry mechanisme in SNMP. Sending SNMP over TCP will only work is your agent listens on TCP. See RFC 3430

When listening for incoming packets, the Socket, that is created when accepting an incoming connection, is closed at the end. Because of this, it is NOT possible to send a response back over the same connection.

Since:
  4_14
Version:
  $Revision: 1.7 $ $Date: 2006/03/23 14:54:09 $
Author:
  Birgit Arkesteijn
See Also:
  `Socket`

Field Summary

Fields inherited from interface uk.co.westhawk.snmp.net.ContextSocketFace
`version_id`

Constructor Summary
`TCPSocket()`

Method Summary
`void` | `close()` Closes this socket.
`void` | `create(int port, java.lang.String bindAddr)` Creates the socket.
`void` | `create(java.lang.String host, int port, java.lang.String bindAddr)` Creates the socket.
`java.lang.String` | `getLocalSocketAddress()` Returns the address of the endpoint this socket is bound to, or null if it is not bound yet.
`java.lang.String` | `getReceivedFromHostAddress()` Returns the IP address of the (latest) host of the packet we received.
`java.lang.String` | `getRemoteSocketAddress()` Returns the address of the endpoint this socket is connected to, or null if it is unconnected.
`java.lang.String` | `getSendToHostAddress()` Returns the IP address of the host we sent the packet to.
`StreamPortItem` | `receive(int maxRecvSize)` Receives a packet from this socket.
`void` | `send(byte[] packet)` Sends a packet from this socket.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### TCPSocket

    public TCPSocket()

Method Detail

### create

    public void create(int port,
                       java.lang.String bindAddr)
                throws java.io.IOException

  Description copied from interface: `ContextSocketFace`
  Creates the socket. This socket is used when listening for incoming requests or traps. Use only one (1) of the two create methods.

  Specified by:
    `create` in interface `ContextSocketFace`
  Parameters:
    `port` - The local port number were we receive (listen for) packets
    `bindAddr` - The local address the server will bind to when listening
    `java.io.IOException`
  See Also:
    `ContextSocketFace.create(String, int, String)`

### create

    public void create(java.lang.String host,
                       int port,
                       java.lang.String bindAddr)
                throws java.io.IOException

  Description copied from interface: `ContextSocketFace`
  Creates the socket. This socket is used to send out our requests. Use only one (1) of the two create methods.

  Specified by:
    `create` in interface `ContextSocketFace`
  Parameters:
    `host` - The name of the host that is to receive our packets
    `port` - The port number of the host
    `bindAddr` - The local address the server will bind to when sending packets
    `java.io.IOException`
  See Also:
    `ContextSocketFace.create(int, String)`

### getReceivedFromHostAddress

    public java.lang.String getReceivedFromHostAddress()

  Description copied from interface: `ContextSocketFace`
  Returns the IP address of the (latest) host of the packet we received. Only applicable when anything has been received. When sending a request, this will in most cases be the same host where we sent the original packet to.

  Specified by:
    `getReceivedFromHostAddress` in interface `ContextSocketFace`
  Returns:
    The IP address, or null when the hostname cannot be determined
  See Also:
    `ContextSocketFace.getSendToHostAddress()`

### getSendToHostAddress

    public java.lang.String getSendToHostAddress()

  Description copied from interface: `ContextSocketFace`
  Returns the IP address of the host we sent the packet to. Only applicable when sending requests, not when (only) listening for incoming requests or traps.

  Specified by:
    `getSendToHostAddress` in interface `ContextSocketFace`
  Returns:
    The IP address, or null when the hostname cannot be determined
  See Also:
    `ContextSocketFace.getReceivedFromHostAddress()`

### getLocalSocketAddress

    public java.lang.String getLocalSocketAddress()

  Description copied from interface: `ContextSocketFace`
  Returns the address of the endpoint this socket is bound to, or null if it is not bound yet.

  Specified by:
    `getLocalSocketAddress` in interface `ContextSocketFace`

### getRemoteSocketAddress

    public java.lang.String getRemoteSocketAddress()

  Description copied from interface: `ContextSocketFace`
  Returns the address of the endpoint this socket is connected to, or null if it is unconnected.

  Specified by:
    `getRemoteSocketAddress` in interface `ContextSocketFace`

### receive

    public StreamPortItem receive(int maxRecvSize)
                           throws java.io.IOException

  Description copied from interface: `ContextSocketFace`
  Receives a packet from this socket. The StreamPortItem object contains the host and port the packet came from.

  Specified by:
    `receive` in interface `ContextSocketFace`
  Parameters:
    `maxRecvSize` - the maximum number of bytes to receive
  Returns:
    the packet
    `java.io.IOException`

### send

    public void send(byte[] packet)
              throws java.io.IOException

  Description copied from interface: `ContextSocketFace`
  Sends a packet from this socket. It can throw an "java.io.IOException: Invalid argument" when the bind address is incorrect for some reason.

  Specified by:
    `send` in interface `ContextSocketFace`
  Parameters:
    `packet` - the packet
    `java.io.IOException`

### close

    public void close()

  Description copied from interface: `ContextSocketFace`
  Closes this socket.

  Specified by:
    `close` in interface `ContextSocketFace`

Overview | Package | Class | Tree | Deprecated | Index | Help
| SNMP Stack 5_1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD