100% found this document useful (1 vote)
410 views17 pages

Java Network Programming

This document discusses several topics in Java network programming including applets, servlets, sockets programming, RMI, and URLs. It provides an overview and basic concepts for each topic in 1-2 paragraphs and includes code snippets and examples. The key topics covered are applets for client-side GUI programs, servlets for server-side dynamic web pages, sockets for low-level network communication, RMI for remote object access, and URLs for accessing resources on the web.

Uploaded by

om18sahu
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
100% found this document useful (1 vote)
410 views17 pages

Java Network Programming

This document discusses several topics in Java network programming including applets, servlets, sockets programming, RMI, and URLs. It provides an overview and basic concepts for each topic in 1-2 paragraphs and includes code snippets and examples. The key topics covered are applets for client-side GUI programs, servlets for server-side dynamic web pages, sockets for low-level network communication, RMI for remote object access, and URLs for accessing resources on the web.

Uploaded by

om18sahu
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 17

Java Network Programming

Applets
Servlets, JSP
Sockets Programming
RMI
URL

Java Network Programming 1


Applets
● GUI program that runs in a web browser.
● Java bytecode comes from a web server (along
with a web page).
● Security Issues!
– sandbox
● Sample applet for those interested...

Java Network Programming 2


Servlets
● Server Side Java programming
– No GUI programming.
– Dynamic web page creation – responds to web
requests.
– Efficiency issues (threads, persistent objects, etc)
– Security Issues
– JSP: Java Server Pages
● a different way to create servlets – easier than full Java
class definitions.

Java Network Programming 3


Network Programming
● Communication between processes
● Many approaches:
– low level network API: sockets
● need to understand networking, addressing, etc.
– Object oriented approaches: RMI, CORBA
– Service based approaches: URL class.
– there are others

Java Network Programming 4


Sockets
● Sockets API is popular C progamming API.
● A socket is an abstract communication endpoint.
● Different kinds of sockets for different kinds of
communication:
– Stream (connected byte stream).
– Datagram (individual messages).
● To use sockets you need to understand lots of
network stuff, including the OSI reference model,
network addressing, byte-ordering, ...

Java Network Programming 5


Java Sockets
● Sockets in Java is much simpler than in C
– hides some of the details.
– API is “fit” to be used with TCP/IP, not as generic.
● Different objects used for different kinds of
network communication:
– Socket (Stream Client)
– ServerSocket (Stream Server)
– DatagramSocket (Message oriented).

Java Network Programming 6


Socket and ServerSocket
(TCP based communication)
● Establish a connection with peer process.
● Socket provides an IO stream associated with the
connection.
– all Java IO methods/Objects can be used.
● New exceptions to deal with.
● Great it what you really need is to communicate
using nothing more than a stream.
● Other endpoint could be written in any language!

Java Network Programming 7


DatagramSocket and
DatagramPacket (UDP)
● Message-oriented communication.
– send a message, receive a message
– not dependent on Java IO support...
● Lots of issues:
– not reliable.
– order not guaranteed.
– duplication of messages is possible.
– really need to understand networking to use
effectively.
Java Network Programming 8
The Internet Programming
● Every endpoint is identified by a triple:
– Protocol (UDP vs. TCP).
– Port number (identifies the service)
– IP address (corresponds to a hostname)
● Humans typically use hostnames
● The networking code uses IP addresses
google.com vs. 64.233.187.99

Java Network Programming 9


Java Sockets and IP Addresses
● class InetAddress
● Methods
static InetAddress getByName(String);
static InetAddress getLocalHost();
byte getAddress();
String getHostAddress();
String getHostName();

Java Network Programming 10


TCP (stream) Client vs. Server
● Clients use Socket object
– need to specify the address of the server!
● IP address or hostname and port number
● can get stream associated with the connection.
● Servers use ServerSocket object
– need to set server port number.
– can receive new connections.
● new connection creates a Socket object.

Java Network Programming 11


Sample Talk Client/Server
● Talker class:
– threaded(runnable)
– reads from an input stream, writes to an output stream.
● TalkServer class:
– creates ServerSocket, waits for client to connect.
– creates 2 Talker objects and runs them.
● TalkClient class:
– creates Socket, connects to server.
– creates 2 Talker objects and runs them.

Java Network Programming 12


RMI Remote Method Invocation
● Basic idea is to make Java objects available over
the network.
● Server must include code that looks for requests
– at some address (service name).
– call the requested method and return the result.
– serialization!
● Client must create remote objects
– after this step there is syntactic difference in the code!

Java Network Programming 13


RMI Sample Code
● SimpleRMI, AlternativeSimpleRMI
– remote addition, subtraction, ...
– two methods of creating server objects that can
service clients.
● SortRMI
– remote sort method
– can easily send/receive complex object types.

Java Network Programming 14


URL support
● Uniform Resource Locator: pointer to some
resource (typically on the WWW).
● Java has a URL class that can:
– build and parse URLs
– create a URLConnection object
● can interact with the server
– establish a connection to a URL
● give you an InputStream so you can read from the server.
● useful if all you want to do is fetch a web document.
Java Network Programming 15
Some URL Methods
String getHost();
String getPath();
String getQuery();
InputStream openStream();
URLConnection openConnection();

Java Network Programming 16


Fetch and print a web page
try {
URL u = new URL("http://www.google.com");
BufferedReader r = new BufferedReader(
new InputStreamReader( u.openStream()));
String s;
while ( (s = r.readLine()) != null)
System.out.print(s);
} catch (... I/O and URL Exceptions ..

Java Network Programming 17

You might also like