2. The Inetaddress class provides you with a limited interface to
DNS for doing both forward and reverse internet address
lookups
- An InetAddress class method corresponds to a DNS request
Npublic constructoro
3. Three static methods:
InetAddress getByName(String)
Static method used to retrieve the address for the host name passed
as the parameter.
InetAddress [ ] getAllByName(String)
Static method used to retrieve all the addresses for the host name
passed as a parameter.
InetAddress getLocalHost( )
Static method used to retrieve the address for the current, or local,
host.
4. Three additional “getter” methods
String getHostName( )
Returns the host name.
byte[ ] getAddress( )
Returns the IP address.
String getHostAddress( )
Returns the IP address as a string.
6. Once a TCP socket connection is made, a virtual
stream is in place. Java’s IO model is that of a stream,
therefore the models are consistent; all you need to do
connect a TCP socket to a stream and read and write
the streams as normal
7. Socket(String ip, int port)
Creates a streaming socket and binds it to the host and port specified as
parameters.
Socket(String ip, int port, boolean TCPorUDP)
Creates a socket and binds it to the host and port specified as
parameters. The last parameter is used to indicate whether the socket
should be a stream or datagram socket.
Socket(InetAddress ia, int port)
Creates a streaming socket connected to the specified host and port.
Socket(InetAddress ia, int port, boolean TCPorUDP)
Creates a socket connected to the specified host and port. The last
parameter specifies whether the socket should be a stream or datagram
socket.
8. InetAddress getInetAddress( )
Returns an InetAddress object representing the host for this socket.
Int getPort( )
. Returns the port number on the remote host for this socket
Int getLocalPort( )
Returns the port number on the local host for this socket.
InputStream getInputStream( )
Returns an input stream for the socket.
OutputStream getOutputStream( )
Returns an output stream for the socket.
Close( )
Closes the socket.
SetSocketImplFactory (SocketImplFactory)
Sets the socket factory that will be used to create all sockets.
9. try
{
Socket socket = new Socket("somehost.somewhere.com", -1);
// Always a good idea to buffer the stream to mitigate blocking.
PrintStream out = new PrintStream( new BufferedOutputStream(socket.getOutputStream()));
out.println("Are you listening?");
DataInputStream in = new DataInputStream( new BufferedInputStream(socket.getInputStream()));
in.readLine();
// ...
// Don't forget to close the socket!
socket.close()
}
catch (Exception e)
// Exception handling logic.
10. Since UDP is a connectionless protocol; there is no virtual stream
between the hosts so streams are not used for IO.
UDP applications are not thought of in terms of clients and servers,
but rather in terms of senders and receivers.
For conversational applications both ends (sender and receiver) will be
changing states from sender to receiver and back again
Many UDP based applications are simple send a request then receive the
data (sender’s perspective), like a DNS request. The receiver’s perspective
is to ‘listen’ for a request, send the response, listen for more requests.
11. UDP sockets send and receive Datagrams
Constructors: two for receiving, four for sending
DatagramPacket( byte[ ] buff , int len)
Constructs a DatagramPacket for receiving packets of length len.
DatagramPacket(byte[] buf, int off, int len)
Constructs a DatagramPacket for receiving packets of length len,
specifying an offset of off bytes into the buffer.
DatagramPacket((byte[] buf, int len, InetAddress addr, int port)
Constructs a datagram packet for sending packets of length len to the
specified port number on the specified host.
DatagramPacker(byte[] buf, int off, int len, InetAddress addr, int port)
Constructs a datagram packet for sending packets of length len with
offset off to the specified port number on the specified host.
DatagramPacket(byte[] buf, int off, int len, SocketAddress addr)
Constructs a datagram packet for sending packets of length len with
offset off to the specified port number on the specified host.
12. Constructors
DatagramSocket()
Constructs a datagram socket and binds it to any available port on the
local host.
DatagramSocket(DatagramSocketImpl impl)
Creates an unbound datagram socket with the specified
DatagramSocketImpl.
DatagramSocket(int port)
Constructs a datagram socket and binds it to the specified port on the
local host.
DatagramSocket(int port, InetAddress iaddr)
Creates a datagram socket, bound to the specified local address.
DatagramSocket(SocketAddress bindaddr)
Creates a datagram socket, bound to the specified local socket address.