[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Re: Unix sockets under Java



Hi all,

If your looking for UDP as opposed to TCP this might work ->
Sorry I could not post a link as this was not copied from the
web, but you could get similar specs for the Java 1.2 API at sun


----------------------------------------------------------------
java.net 
Class DatagramSocket

java.lang.Object
  |
  +--java.net.DatagramSocket

Direct Known Subclasses: 
    MulticastSocket 



public class DatagramSocket
extends Object

This class represents a socket for sending and receiving datagram
packets. 

A datagram socket is the sending or receiving point for a packet
delivery service. Each packet sent or
received on a datagram socket is individually addressed and routed.
Multiple packets sent from one
machine to another may be routed differently, and may arrive in any
order. 

UDP broadcasts sends and receives are always enabled on a
DatagramSocket. 

Since: 
    JDK1.0 
See Also: 
    DatagramPacket



 Constructor Summary
 DatagramSocket() 
           Constructs a datagram socket and binds it to any available
port on the local host machine.
 DatagramSocket(int port) 
           Constructs a datagram socket and binds it to the specified
port on the local host machine.
 DatagramSocket(int port, InetAddress laddr) 
           Creates a datagram socket, bound to the specified local
address.

  
 Method Summary
        void
           close() 
                     Closes this datagram socket.
        void
           connect(InetAddress address, int port) 
                     Connects the socket to a remote address for this
socket.
        void
           disconnect() 
                     Disconnects the socket.
  InetAddress
           getInetAddress() 
                     Returns the address to which this socket is
connected.
  InetAddress
           getLocalAddress() 
                     Gets the local address to which the socket is
bound.
        int
           getLocalPort() 
                     Returns the port number on the local host to which
this socket is bound.
        int
           getPort() 
                     Returns the port for this socket.
        int
           getReceiveBufferSize() 
                     Get value of the SO_RCVBUF option for this socket,
that is the buffer size
           used by the platform for input on the this Socket.
        int
           getSendBufferSize() 
                     Get value of the SO_SNDBUF option for this socket,
that is the buffer size used
           by the platform for output on the this Socket.
        int
           getSoTimeout() 
                     Retrive setting for SO_TIMEOUT.
        void
           receive(DatagramPacket p) 
                     Receives a datagram packet from this socket.
        void
           send(DatagramPacket p) 
                     Sends a datagram packet from this socket.
        void
           setReceiveBufferSize(int size) 
                     Sets the SO_RCVBUF option to the specified value
for this DatagramSocket.
        void
           setSendBufferSize(int size) 
                     Sets the SO_SNDBUF option to the specified value
for this DatagramSocket.
        void
           setSoTimeout(int timeout) 
                     Enable/disable SO_TIMEOUT with the specified
timeout, in milliseconds.

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

  

 Constructor Detail


DatagramSocket

public DatagramSocket()
               throws SocketException

    Constructs a datagram socket and binds it to any available port on
the local host machine. 

    If there is a security manager, its checkListen method is first
called with 0 as its argument to
    ensure the operation is allowed. This could result in a
SecurityException.
    Throws:
        SocketException - if the socket could not be opened, or the
socket could not bind to the
        specified local port.
        SecurityException - if a security manager exists and its
checkListen method doesn't
        allow the operation.
    See Also: 
        SecurityManager.checkListen(int)



DatagramSocket

public DatagramSocket(int port)
               throws SocketException

    Constructs a datagram socket and binds it to the specified port on
the local host machine. 

    If there is a security manager, its checkListen method is first
called with the port argument
    as its argument to ensure the operation is allowed. This could
result in a SecurityException.
    Parameters:
        port - port to use.
    Throws:
        SocketException - if the socket could not be opened, or the
socket could not bind to the
        specified local port.
        SecurityException - if a security manager exists and its
checkListen method doesn't
        allow the operation.
    See Also: 
        SecurityManager.checkListen(int)



DatagramSocket

public DatagramSocket(int port,
                      InetAddress laddr)
               throws SocketException

    Creates a datagram socket, bound to the specified local address. The
local port must be between 0
    and 65535 inclusive. 

    If there is a security manager, its checkListen method is first
called with the port argument
    as its argument to ensure the operation is allowed. This could
result in a SecurityException.
    Parameters:
        port - local port to use
        laddr - local address to bind
    Throws:
        SocketException - if the socket could not be opened, or the
socket could not bind to the
        specified local port.
        SecurityException - if a security manager exists and its
checkListen method doesn't
        allow the operation.
    Since: 
        JDK1.1 
    See Also: 
        SecurityManager.checkListen(int)

 Method Detail


connect

public void connect(InetAddress address,
                    int port)

    Connects the socket to a remote address for this socket. When a
socket is connected to a remote
    address, packets may only be sent to or received from that address.
By default a datagram socket
    is not connected. 

    A caller's permission to send and receive datagrams to a given host
and port are checked at
    connect time. When a socket is connected, receive and send will not
perform any security
    checks on incoming and outgoing packets, other than matching the
packet's and the socket's
    address and port. On a send operation, if the packet's address is
set and the packet's address and
    the socket's address do not match, an IllegalArgumentException will
be thrown. A socket
    connected to a multicast address may only be used to send packets.
    Parameters:
        address - the remote address for the socket
        port - the remote port for the socket.
    Throws:
        IllegalArgumentException - if the address is invalid or the port
is out of range.
        SecurityException - if the caller is not allowed to send
datagrams to and receive datagrams
        from the address and port.
    See Also: 
        disconnect(), send(java.net.DatagramPacket),
        receive(java.net.DatagramPacket)



disconnect

public void disconnect()

    Disconnects the socket. This does nothing if the socket is not
connected.
    See Also: 
        connect(java.net.InetAddress, int)



getInetAddress

public InetAddress getInetAddress()

    Returns the address to which this socket is connected. Returns null
if the socket is not
    connected.
    Returns:
        the address to which this socket is connected.



getPort

public int getPort()

    Returns the port for this socket. Returns -1 if the socket is not
connected.
    Returns:
        the port to which this socket is connected.



send

public void send(DatagramPacket p)
          throws IOException

    Sends a datagram packet from this socket. The DatagramPacket
includes information
    indicating the data to be sent, its length, the IP address of the
remote host, and the port number
    on the remote host. 

    If there is a security manager, and the socket is not currently
connected to a remote address, this
    method first performs some security checks. First, if
    p.getAddress().isMulticastAddress() is true, this method calls the
security
    manager's checkMulticast method with p.getAddress() as its argument.
If the
    evaluation of that expression is false, this method instead calls
the security manager's
    checkConnect method with arguments p.getAddress().getHostAddress()
and
    p.getPort(). Each call to a security manager method could result in
a SecurityException if
    the operation is not allowed.
    Parameters:
        p - the DatagramPacket to be sent.
    Throws:
        IOException - if an I/O error occurs.
        SecurityException - if a security manager exists and its
checkMulticast or
        checkConnect method doesn't allow the send.
    See Also: 
        DatagramPacket, SecurityManager.checkMulticast(InetAddress),
        SecurityManager.checkConnect(java.lang.String, int)



receive

public void receive(DatagramPacket p)
             throws IOException

    Receives a datagram packet from this socket. When this method
returns, the
    DatagramPacket's buffer is filled with the data received. The
datagram packet also contains
    the sender's IP address, and the port number on the sender's
machine. 

    This method blocks until a datagram is received. The length field of
the datagram packet
    object contains the length of the received message. If the message
is longer than the packet's
    length, the message is truncated. 

    If there is a security manager, a packet cannot be received if the
security manager's
    checkAccept method does not allow it.
    Parameters:
        p - the DatagramPacket into which to place the incoming data.
    Throws:
        IOException - if an I/O error occurs.
    See Also: 
        DatagramPacket, DatagramSocket



getLocalAddress

public InetAddress getLocalAddress()

    Gets the local address to which the socket is bound. 

    If there is a security manager, its checkConnect method is first
called with the host address
    and -1 as its arguments to see if the operation is allowed.
    Throws:
        SecurityException - if a security manager exists and its
checkConnect method doesn't
        allow the operation.
    Since: 
        1.1 
    See Also: 
        SecurityManager.checkConnect(java.lang.String, int)



getLocalPort

public int getLocalPort()

    Returns the port number on the local host to which this socket is
bound.
    Returns:
        the port number on the local host to which this socket is bound.



setSoTimeout

public void setSoTimeout(int timeout)
                  throws SocketException

    Enable/disable SO_TIMEOUT with the specified timeout, in
milliseconds. With this option set
    to a non-zero timeout, a call to receive() for this DatagramSocket
will block for only this
    amount of time. If the timeout expires, a
java.io.InterruptedIOException is raised, though the
    ServerSocket is still valid. The option must be enabled prior to
entering the blocking operation
    to have effect. The timeout must be > 0. A timeout of zero is
interpreted as an infinite timeout.
    Since: 
        JDK1.1 



getSoTimeout

public int getSoTimeout()
                 throws SocketException

    Retrive setting for SO_TIMEOUT. 0 returns implies that the option is
disabled (i.e., timeout of
    infinity).
    Since: 
        JDK1.1 



setSendBufferSize

public void setSendBufferSize(int size)
                       throws SocketException

    Sets the SO_SNDBUF option to the specified value for this
DatagramSocket. The SO_SNDBUF
    option is used by the platform's networking code as a hint for the
size to use to allocate set the
    underlying network I/O buffers. 

    Increasing buffer size can increase the performance of network I/O
for high-volume connection,
    while decreasing it can help reduce the backlog of incoming data.
For UDP, this sets the
    maximum size of a packet that may be sent on this socket. 

    Because SO_SNDBUF is a hint, applications that want to verify what
size the buffers were set to
    should call IllegalArgumentException - if the value is 0 or is
negative.



getSendBufferSize

public int getSendBufferSize()
                      throws SocketException

    Get value of the SO_SNDBUF option for this socket, that is the
buffer size used by the platform
    for output on the this Socket.
    See Also: 
        setSendBufferSize(int)



setReceiveBufferSize

public void setReceiveBufferSize(int size)
                          throws SocketException

    Sets the SO_RCVBUF option to the specified value for this
DatagramSocket. The SO_RCVBUF
    option is used by the platform's networking code as a hint for the
size to use to allocate set the
    underlying network I/O buffers. 

    Increasing buffer size can increase the performance of network I/O
for high-volume connection,
    while decreasing it can help reduce the backlog of incoming data.
For UDP, this sets the
    maximum size of a packet that may be sent on this socket. 

    Because SO_RCVBUF is a hint, applications that want to verify what
size the buffers were set to
    should call IllegalArgumentException - if the value is 0 or is
negative.



getReceiveBufferSize

public int getReceiveBufferSize()
                         throws SocketException

    Get value of the SO_RCVBUF option for this socket, that is the
buffer size used by the platform
    for input on the this Socket.
    See Also: 
        setReceiveBufferSize(int)



close

public void close()

    Closes this datagram socket.

Submit a bug or feature Version 1.2 of Java Platform API Specification
Java is a trademark or registered trademark of Sun Microsystems, Inc. in
the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved. 
------------------------------------------------------------------------------------

Regards,
Santosh Dawara.

Anurag Shekhar wrote:

> 
> u can try JNI
> anurag
> 
> Ambar Roy wrote:
> 
> > Hi,
> >     Is there any method by which i can use unix sockets under java!
> > Bye,
> >     /\ |\/| |3 /\ r
> >
> > ---------------------------------------------
> > The mailing list archives are available at
> > http://lists.linux-india.org/cgi-bin/wilma/LIP
> 
> ---------------------------------------------
> LIP is all for free speech.  But it was created
> for a purpose.  Violations of the rules of
> this list will result in stern action.