AJAVA Unit 1
AJAVA Unit 1
AJAVA Unit 1
Swati Sharma
[email protected]
ADVANCED
ADVANCED JAVA
JAVA -- 2160707
2160707 Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology
Advanced Java
JAVA Platform
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 22
Subject Overview
• Teaching and Examination Scheme:
ADVANCED
ADVANCED JAVA
JAVA -- 2160707
2160707 Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology
Subject Overview
Sr. No. Unit % Weightage
1 Java Networking 5
2 JDBC Programming 10
3 Servlet API and Overview 25
4 Java Server Pages 25
5 Java Server Faces 10
6 Hibernate 15
7 Java Web Frameworks: Spring MVC 10
Reference Book:
1. Complete Reference J2EE by James Keogh mcgraw publication
2. Black Book “ Java server programming” J2EE, 1st ed., Dream Tech Publishers, 2008.
Kathy walrath ”
3. Professional Java Server Programming by Subrahmanyam Allamaraju, Cedric Buest
Wiley Publication
ADVANCED
ADVANCED JAVA
JAVA -- 2160707
2160707 Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology
Subject Overview :Unit Mapping
Sr. Unit Reference Book Chapter
No.
1 Java Networking The Complete Reference, Java (Seventh Edition), 20
Herbert Schild - Osbrone.
2 JDBC Programming Complete Reference J2EE by James Keogh 6,7
mcgraw publication
3 Servlet API and Overview 7,8
Professional Java Server Programming by
4 Java Server Pages Subrahmanyam Allamaraju, Cedric Buest Wiley 10,11
Publication
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 55
UNIT-1
JAVA NETWORKING
Reference Book
The Complete Reference, Java (Seventh Edition), Herbert Schild - Osbrone.
CHAPTER : 20
ADVANCED
ADVANCED JAVA
JAVA -- 2160707
2160707 Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology
Unit-1: Java Networking
Topic
1. Network Basics and Socket overview
2. InetAddress
3. TCP/IP server sockets
4. TCP/IP client sockets
5. Datagrams
6. URL
7. URLConnection
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 77
Unit-1: Java Networking
Topic
1. Network Basics and Socket overview
2. InetAddress
3. TCP/IP server sockets
4. TCP/IP client sockets
5. Datagrams
6. URL
7. URLConnection
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 88
Network Basics: java.net pacakage
The term network programming refers to writing programs that
execute across multiple devices (computers), in which the devices
are all connected to each other using a network.
Java.net Package
InetAddress
This class represents an
import java.net.* URL Class represents
Internet a address.
Protocol (IP) Uniform
Resource Locator, a pointer to
URLConnection
a "resource"
Represent theon communications
the World link
ServerSocket Wide
Used Web.
to create
between a server socket.
the application and a URL
TCP Socket This object is used to establish
DatagramPacket communication with theclient
This class implements clients.
sockets.
DatagramSocket This class represents a
UDP datagram packet.
Represents a socket for
sending and receiving
datagram packets.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 99
Socket overview
Socket
“A socket is one endpoint of a two-way communication link
between two programs running on the network.”
An Socket is combination of an IP address and a port number.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 10
10
Client – Server Communication
Two machines must connect
Server waits for connection
Client initiates connection
Server responds to the client request
Server Client
Response
socket socket
Request
Waits
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 11
11
Socket overview
• The server is just like any ordinary program running in a computer.
• Each computer is equipped with some ports.
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 12
12
Socket overview
• The server connects to one of the ports.
• This process is called binding to a port.
• The connection is called a server socket.
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 13
13
Socket overview
• Server is waiting for client machine to connect.
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 14
14
Socket overview
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 15
15
Socket overview
• In the next step the client connects to this port of the server's computer.
• The connection is called a (client) socket.
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 16
16
Socket overview
• Now, connection is established between client and server.
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 17
17
Socket overview
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 18
18
Socket overview
Everytime a client is found, its Socket is extracted, and the loop again waits for the
next client.
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 19
19
Socket overview
Client 2
Server
Client 1
Reference: isinotes/javatut/net
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 20
20
Unit-1: Java Networking
Topic
1. Network Basics and Socket overview
2. InetAddress
3. TCP/IP server sockets
4. TCP/IP client sockets
5. Datagrams
6. URL
7. URLConnection
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 21
21
InetAddress
java.net package
• This class represents an Internet Protocol (IP) address.
• The java.net.InetAddress class provides methods to get an IP of host name.
Example
InetAddress ip
=InetAddress.getByName("www.darshan.ac.in");
System.out.println(“ip:“+ ip);
Output:
ip: www.darshan.ac.in/89.238.188.50
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 22
22
InetAddress : Method
Method Description
public static InetAddress Determines the IP address of a given host's
getByName(String host) name.
throws UnknownHostException
Example
InetAddress ip
=InetAddress.getByName("www.darshan.ac.in");
System.out.println(“ip:“+ ip);
Output:
ip: www.darshan.ac.in/89.238.188.50
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 23
23
InetAddress : Method
Method Description
public static InetAddress Returns the address of the local host.
getLocalHost()
throws UnknownHostException
Example
InetAddress ip=InetAddress.getLocalHost();
System.out.println(“LocalHost:“+ip);
Output:
LocalHost:swati-PC/10.254.3.34
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 24
24
InetAddress : Method
Method Description
public String getHostName() it returns the host name of the IP address.
Example
InetAddress ip=InetAddress.getByName("10.254.3.34");
System.out.println(“Hostname:”+ip.getHostName());
Output:
Hostname:swati-PC
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 25
25
InetAddress : Method
Method Description
public String getHostAddress() it returns the IP address in string format.
Example
InetAddress ip=InetAddress.getByName("www.darshan.ac.in");
System.out.println(“HostAddress:”+ip.getHostAddress());
Output:
HostAddress:89.238.188.50
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 26
26
InetAddress: Program
import java.net.*; //required for InetAddress Class
public class InetDemo{
public static void main(String[] args){
try{
InetAddress ip
=InetAddress.getByName("www.darshan.ac.in");
Output:
Host Name: www.darshan.ac.in
IP Address: 89.238.188.50
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 27
27
InetAddress: Method Summary
static InetAddress Determines the IP address of a given host's name.
getByName(String host)
boolean equals(Object obj) Compares this object against the specified object.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 28
28
Assignment
Write a java program to demonstrate methods of java.net.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 29
29
Unit-1: Java Networking
Topic
1. Network Basics and Socket overview
2. InetAddress
3. TCP/IP server sockets
4. TCP/IP client sockets
5. Datagrams
6. URL
7. URLConnection
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 30
30
TCP/IP Client-Server sockets
Java.net
InetAddress
URL
URLConnection
This class implements Server sockets
ServerSocket
TCP Socket
This class implements Client sockets.
DatagramPacket
DatagramSocket
MulticastSocket
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 31
31
TCP/IP ServerSocket Class
The ServerSocket class (java.net) can be used to create a server
socket.
This object is used to establish communication with the clients.
Constructor
ServerSocket(int port) Creates a server socket, bound to the specified
port.
Method
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 32
32
TCP/IP Server Sockets
Syntax
ServerSocket ss;
ss=new ServerSocket(Port_no);
Example
ServerSocket ss=new ServerSocket(1111);
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 33
33
TCP/IP Server program
MyServer.java
1. import java.io.*; // required data input/output stream
2. import java.net.*; //required for Socket Class
3. public class MyServer {
4. public static void main(String[] args){
5. try{
6. ServerSocket ss=new ServerSocket(1111);
7. Socket s=ss.accept();//establishes connection
8. DataInputStream dis=
9. new DataInputStream (s.getInputStream());
10. String str=(String)dis.readUTF();
11. System.out.println("message= "+str);
12. ss.close();
13. }
14. catch(Exception e){System.out.println(e);}
15. }
16.}
Server
Output
message= Hello Server socket
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 34
34
TCP/IP Client Sockets: Socket Class
The client in socket programming must know two information:
1. IP Address of Server
2. Port number.
Constructor
Method
public InputStream getInputStream() returns the InputStream attached with this
socket
public OutputStream getOutputStream() returns the OutputStream attached with this
socket.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 35
35
TCP/IP Client Sockets
Syntax
Socket myClient; //Creates object of Socket Class
myClient = new Socket("Machine name", PortNumber);
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 36
36
TCP/IP Client Sockets: Program
1. import java.net.*; //required for Socket Class
2. import java.io.*; // required data input/output stream
3. public class MyClient {
4. public static void main(String[] args)
5. { try{
6. Socket s = new Socket("localhost",1111);
7. DataOutputStream dout= new
DataOutputStream(s.getOutputStream()); Object of Socket class
8. dout.writeUTF("Hello Server");// Writes a
string to the underlying output stream
9. }catch(Exception e)
10. {System.out.println(e);}
11. }
12.}
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 37
37
TCP/IP Client-Server program
MyServer.java MyClient.java
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 38
38
Assignment
Write a java program for TCP Client/Server Chat Application.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 39
39
Unit-1: Java Networking
Topic
1. Network Basics and Socket overview
2. InetAddress
3. TCP/IP server sockets
4. TCP/IP client sockets
5. Datagrams
6. URL
7. URLConnection
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 40
40
Datagrams
Java.net
InetAddress
URL
URLConnection
ServerSocket This class represents a
Socket datagram packet.
DatagramPacket
DatagramSocket Represents a socket for
UDP
sending and receiving
datagram packets.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 41
41
Datagrams: DatagramSocket class
DatagramSocket class represents a connection-less socket for
sending and receiving datagram packets.
A datagram is basically an information but there is no guarantee of
its content, arrival or arrival time.
Constructor
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 42
42
Datagrams: DatagramPacket class
Java DatagramPacket is a message that can be sent or received.
If you send multiple packet, it may arrive in any order.
Additionally, packet delivery is not guaranteed.
number of bytes to
buffer for holding the incoming datagram. read.
Constructor
DatagramPacket(byte[] barr, int length) It creates a datagram packet. This
constructor is used to receive the packets.
DatagramPacket(byte[] barr, int length, It creates a datagram packet. This
InetAddress address, int port) constructor is used to send the packets.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 43
43
Example of Sending DatagramPacket by DatagramSocket
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 44
44
Example of Receiving DatagramPacket by
DatagramSocket
import java.net.*;
public class DReceiver{
public static void main(String[] args) throws Exception
{
DatagramSocket ds = new DatagramSocket(3000);
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, 1024);
ds.receive(dp);
String str = new String(dp.getData(), 0,dp.getLength());
System.out.println(str);
ds.close();
}
}
Output
Message sent by Datagram socket
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 45
45
Example of Sending and Receiving DatagramPacket
DSender.java DReceiver.java
import java.net.*; import java.net.*;
public class DSender{ public class DReceiver{
public static void main(String[] args) public static void main(String[] args
throws Exception{ ) throws Exception {
ds.send(dp); System.out.println(str);
ds.close(); ds.close();
}
} }
}
Output
Message sent by Datagram socket
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 46
46
Unit-1: Java Networking
Topic
1. Network Basics and Socket overview
2. InetAddress
3. TCP/IP client sockets
4. TCP/IP server sockets
5. Datagrams
6. URL
7. URLConnection
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 47
47
URL: Uniform Resource Locator
The Java URL class represents an URL.
This class is pointer to “resource” on the World Wide Web.
E.g. Port Number
http://10.255.1.1:8090/httpclient.html
http is the
protocol.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 48
48
URL
Constructor
URL(String url) Creates a URL object from the String representation.
Example
URL url=new URL("http://www.darshan.ac.in");
Method
public URLConnection openConnection() This method of URL class returns the
throws IOException object of URLConnection class
Example
URLConnection urlcon=url.openConnection();
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 49
49
Unit-1: Java Networking
Topic
1. Network Basics and Socket overview
2. InetAddress
3. TCP/IP client sockets
4. TCP/IP server sockets
5. Datagrams
6. URL
7. URLConnection
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 50
50
URLConnection
URLConnection is the superclass of all classes that represent a
communications link between the application and a URL.
Instances of this class can be used both to read from and to write
to the resource referenced by the URL.
Constructor
URLConnection(URL url) Constructs a URL connection to the
specified URL
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 51
51
URLConnection
Method
public InputStream getInputStream() Returns an input stream that reads from this
throws IOException open connection.
public OutputStream getOutputStream() Returns an output stream that writes to this
throws IOException connection.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 52
52
URLConnection : Program
import java.io.*; //required for input stream
import java.net.*; //required for URL & URLConnection
public class URLConnectionDemo {
public static void main(String[] args){
try{
URL url=new URL("http://www.darshan.ac.in");
URLConnection urlcon=url.openConnection();
InputStream stream=urlcon.getInputStream();
int i; Object of URLConnection Class
while((i=stream.read())!=-1){
System.out.print((char)i);
}
}catch(Exception e){System.out.println(e);}
}
}
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 53
53
Important Questions: GTU
1 What is Server Socket? Explain in detail with an example. [Win-16]
2 What is Datagram Socket? Explain in detail with example. [Win-16]
3 Write a TCP or UDP client and server program to do the following: [Sum-16]
Client send : Welcome to Gujarat Technological UNIVERSITY [Win-16]
Response from Server: ytisrevinu LACIGOLONHCEt TARAJUg TO EMOCLEw
4 Write a client-server program using TCP or UDP where the client sends 10 [Sum-16]
numbers and server responds with the numbers in sorted order.
5 Write a TCP Client-Server program to get the Date & Time details from [Sum-15]
Server on the Client request. [Win-16]
6 Write a client server program using TCP where client sends two numbers [Win-15]
and server responds with sum of them.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 54
54
Summary
Basic of socket
Socket programming
Client-Server Communication
TCP Client-Server Program
UDP Sender-Receiver Program
URL Connection
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 55
55
Reference
Book Reference
• The Complete Reference, Java (Seventh Edition), Herbert Schild - Osbrone.
Web Reference
• https://docs.oracle.com/javase/7/docs/api/
• https://www.tutorialspoint.com
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 56
56
Assignment: Unit-1
1. Explain working of following protocol
IP, IPV4, IPV6, TCP, UDP, SMTP, HTTP, HTTPS, DNS, FTP
2. TCP vs UDP with their applications. Deadline
3. HTTP is stateless protocol. Justify 16th Jan 2017
4. Define the following: Socket, URL, Port
5. Write a java program to demonstrate methods of InetAddress.
6. Write a java Connection less (UDP) Program to do the following:
Sender will send : Welcome to Gujarat Technological UNIVERSITY
Receiver will send back to sender: ytisrevinu LACIGOLONHCEt TARAJUg TO
EMOCLEw
7. Write a java Connection less (UDP) Program for chat application.
8. Write a client-server program using TCP and UDP where the client sends 10
numbers and server responds with the numbers in sorted order.
9. Write a TCP Client-Server program to get the Date & Time details from Server on
the Client request.
10. Write a client server program using TCP where client sends two numbers and
server responds with sum of them.
Unit-1
Unit-1 JAVA
JAVA NETWORKING
NETWORKING Darshan
Darshan Institute
Institute of
of Engineering
Engineering &
& Technology
Technology 57
57