0% found this document useful (0 votes)
7 views

java 9

Uploaded by

Hrutvij
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

java 9

Uploaded by

Hrutvij
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

java.

net
InetAddress Class

• 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
InetAddress Class

• No public constructor
• 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.
InetAddress Class

• 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.
InetAddress Examples

try
{ InetAddress fullname = netAddress.getByName(“bigyellowcat.cs.binghamton.edu");
InetAddress alias = InetAddress.getByName(“bigyellowcat");
InetAddress octets = InetAddress.getByName(“128.226.121.44");
if (fullname.equals(alias) && fullname.equals(octets))
// All is right with the world! }
catch (UnknownHostException e)
{ // Exception handling here. }
TCP Sockets

• 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
Socket Class - TCP Client sockets

• 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.
Client Sockets
• 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.
Reading and Writing
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)
Examples

• See DayTimeClient and EchoClient on web site


UDP Sockets

• 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.
DatagramPacket Class
• 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.
DatagramPacket Class
– DatagramPacket(byte[] buf, int len, SocketAddress addr)
• Constructs a datagram packet for sending packets of length len to the
specified port number on the specified host.

Getter methods Setter methods


getAddress( ) setAddress(InetAddress iaddr)
setData(byte[ ] buf)
getData( ) setData(byte[] buf, int offset,
getLength( ) int length)
getOffset( ) setLength(int len)
getPort( ) setPort(int port)
getSocketAddr setSocketAddress(SocketAddres
ess( ) s saddr)
DatagramSocket Class – UDP Sockets

• 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.
DatagramSocket Class – operational Methods

• Operational (void) Methods


– bind(SocketAddress addr)
– connect(InetAddress address, int port)
– connect(SocketAddress addr)
– disconnect( )
– receive(DatagramPacket p)
– send(DatagramPacket p)
– close( )
DatagramSocket Class – getter methods
Getter Methods:
DatagramChannel getChannel( )
InetAddress getInetAddress( )
boolean getBroadcast( )
InetAddress getLocalAddress( )
int getLocalPort( )
SocketAddress getLocalSocketAddress( )
SocketAddress getRemoteSocketAddress( )
int getPort( )
int getReceiveBufferSize( )
int getSendBufferSize( )
boolean getReuseAddress( )
int getSoTimeout( )
int getTrafficClass( )
DatagramSocket Class – setter methods

Setter Methods:
void setBroadcast( boolean on)
static void setDatagramSocketImplFactory (DatagramSocketImplFactory fac)
void serReceiveBufferSize(int size)
void setReuseAddress(boolean on)
void setSevdBufferSize(int size)
void setSoTimeout(int timeout)
void setTrafficClass(int tc)
DatagramSocket Class – test methods

Test Methods:
boolean isBound( )
boolean isClosed( )
boolean isConnected( )
Datagram Sockets Examples

• See examples on web site


URL Class

• RFC 2396
• essentially a “pointer” to a resource on the World
Wide Web
– different services use slightly different formats
• file://ftp.yoyodyne.com/pub/files/foobar.txt
• http://www.yahoo.com/index.html
• ftp://[email protected]
• news:rec.gardening
• gopher://gopher.banzai.edu:1234/
URL Class - Constructors
• URL(String spec)
– Creates a URL object from the String representation.
• URL(String protocol, String host, int port, String file)
– Creates a URL object from the specified protocol, host, port number, and file.
• URL(String protocol, String host, int port, String file, URLStreamHandler handler)
– Creates a URL object from the specified protocol, host, port number, file, and handler.
• URL(String protocol, String host, String file)
– Creates a URL from the specified protocol name, host name, and file name.

• URL(URL context, String spec)


– Creates a URL by parsing the given spec within a specified context
• URL(URL context, String spec, URLStreamHandler handler)
– Creates a URL by parsing the given spec with the specified handler within a specified
context.
URL Class - Methods
Getters
String getAuthority( )
Object getContent( )
Object getContent(Classes[ ] classes)
int getDefaultPort( )
String getFile( )
String getHost( )
String getPath( )
int getPort( )
String getProtocol( )
String getQuery( )
String getRef( )
String getUserInfo( )
URL Class - Methods

Setters
set(String protocol, String host, int port, String file, String ref)

set(String protocol, String host, int port, String authority, String userInfo, String path, String query,
String ref)

setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
URL Class – Utility methods

int hashCode( )
URLConnection openConnection( )
InputStream openStream( )
boolean sameFile(URL other)
String toExternalForm( )
String toString( )
boolean equals(Object obj)
URL Class - example

• see ReadURL example on web site


ServerSocket

• Used as the main connection point for some


service you wish to provide.
• Once created, it listens for connection
requests then queues the request for
disposition
• On Unix/Linux you must be root to use
ServerSocket – Life cycle
• A new ServerSocket is created on a particular port using a
ServerSocket( ) constructor.
• The ServerSocket listens for incoming connection attempts on that
port using its accept( ) method. accept( ) blocks until a client attempts
to make a connection, at which point accept( ) returns a Socket object
connecting the client and the server.
• Depending on the type of server, either the Socket's getInputStream( )
method, getOutputStream( ) method, or both are called to get input
and output streams that communicate with the client.
• The server and the client interact according to an agreed-upon protocol
until it is time to close the connection.
• The server, the client, or both close the connection.
• The server returns to step 2 and waits for the next connection.
ServerSockets - threads
• Simultaneous requests are held in a queue, as each request is removed
from the queue and processed new connections requests can be added
to the queue. Connection requests received while the queue is full will
be blocked.
– Some clients use multiple retries in this case as queue space will usually open up
pretty quickly.
• For simple protocols (DayTime) the queue can usually handle all of
the requests without problem
• For more complex protocols (HTTP) use a thread to process each
connection. Threads have less overhead than spawning an entire child
process.
ServerSocket - Constructors
• public ServerSocket(int port) throws IOException, BindException

• public ServerSocket(int port, int queueLength) throws IOException,


BindException

• public ServerSocket(int port, int queueLength, InetAddress


bindAddress) throws IOException
ServerSocket – methods

• accept( ) – accepts a connection request and


creates a socket to the remote user
• close( ) – close the server socket and wait
for next connection request
ServerSocket - example

ServerSocket server = new ServerSocket(5776);


while (true)
{ Socket connection = server.accept( );
OutputStreamWriter out =
new OutputStreamWriter(connection.getOutputStream( ));
out.write("You've connected to this server. Bye-bye now.\r\n");
connection.close( );
}
Server Sockets - problems

• You are not root


• Port is already in use

You might also like