[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.