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

Java Network Programming

This document provides an overview of Java network programming. It discusses important Java packages for networking like java.net, java.io, and java.rmi. It covers key concepts like sockets for TCP/IP and UDP, IP addresses, threads, HTTP servlets, Java applets, remote method invocation (RMI), and the Java Naming and Directory Interface (JNDI). The document is intended to teach programmers how to develop networked and distributed applications using Java.

Uploaded by

Sanchay Gupta
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

Java Network Programming

This document provides an overview of Java network programming. It discusses important Java packages for networking like java.net, java.io, and java.rmi. It covers key concepts like sockets for TCP/IP and UDP, IP addresses, threads, HTTP servlets, Java applets, remote method invocation (RMI), and the Java Naming and Directory Interface (JNDI). The document is intended to teach programmers how to develop networked and distributed applications using Java.

Uploaded by

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

Java Network Programming

Network Programming
Spring 2000
Jeffrey E. Care
[email protected]
Java Overview
 Object-oriented
 Developed with the network in
mind
 Built-in exception handling
 Extensive standard class library

Netprog 2000 - Java Network Programming 2


Important Java Packages

java.net TCP/IP networking

java.io I/O streams & utilities

java.rmi Remote Method Invocation

java.security Security policies

java.lang Threading classes


Netprog 2000 - Java Network Programming 3
Java Sockets Programming
 Java uses BSD-style sockets to
interface with TCP/IP services (
java.net package)
 Java distinguishes between UDP, TCP
server & TCP client sockets
 Behind-the-scenes classes do the
actual work & can be updated or
swapped out transparently
Netprog 2000 - Java Network Programming 4
IP Addresses & Hostnames
 java.net.InetAddress class
 Represents a single IP address
 Factory class – no public constructor
 Performs transparent DNS lookups or
reverse lookups
 java.net.UnkownHostException
thrown if DNS system can’t find IP
address for specific host
Netprog 2000 - Java Network Programming 5
TCP Server Sockets
 java.net.ServerSocket class
 Binds to a local port to listen for initial
connections
 Can be bound to a local IP for multi-
homed machines
 accept() method returns a
java.net.Socket, not an integer
descriptor
Netprog 2000 - Java Network Programming 6
TCP Client Sockets
 java.net.Socket class
 Combines socket with socket options
(timeout, linger, keep alive, no delay,
etc)
 Encapsulates a java.io.InputStream
and a java.io.OutputStream – can be
retrieved for use in a layered I/O system

Netprog 2000 - Java Network Programming 7


UDP Sockets
 java.net.DatagramSocket class
 Java makes no distinction between
client/server for UDP sockets
 Connected mode UDP supported in
Java 2
 Can be bound to both a local port & a
local IP address – multi-homed support
 Supports some socket options (timeout,
buffer size)
Netprog 2000 - Java Network Programming 8
UDP Datagrams
 java.net.DatagramPacket class
 Expects a byte array of data
 Address optional for connected-mode
UDP
 This class is final – can’t be extended!
 java.net.DatagramSocket
instances can only send instances of
java.net.DatagramPacket
Netprog 2000 - Java Network Programming 9
Threading
 Java doesn’t support the notion of
forking processes; how do we support
concurrency?
– Java was designed to support multi-
threading!
– In server environments we can spawn new
threads to handle each client
– Thread groups allow for collective control
of many threads

Netprog 2000 - Java Network Programming 10


Java Servlets
 Servlets are the Java analog to CGI
 Advantages of servlets: full access to
other Java APIs, persistence between
invocations, guaranteed portability
 Servlets can be generic services or
specific to HTTP

Netprog 2000 - Java Network Programming 11


HTTP Servlets
 javax.servlet.http.HttpServlet
class
 Uses HTTP to receive requests and
generate responses
 Full support for all HTTP methods,
cookies, sessions, persistent
connections
 Servlets can be chained – example: de-
blink servlet
Netprog 2000 - Java Network Programming 12
Java Applets
 Client-side Java programs that run in a
browser
 Applets have special security
restrictions called the applet sandbox
 Only applets loaded over the network
are subject to the applet sandbox
 The applet sandbox is controlled by a
java.lang.SecurityManager
Netprog 2000 - Java Network Programming 13
Applet Sandbox
 Can’t load libraries or define native methods
 Can’t access local host filesystem
 Can’t open sockets to hosts other than
originating host
 Can’t use Runtime.exec()
 Applet windows have a unique appearance
 Restricted access to certain system
properties

Netprog 2000 - Java Network Programming 14


Escaping the Applet Sandbox
 Browsers can define their own security
policy via a new security manager
 Applets can be signed and executed as
trusted content
 Security policies may vary from browser
to browser, even for signed applets

Netprog 2000 - Java Network Programming 15


Remote Method Invocation
(RMI)
 RMI is the Java analog to RPC
 RMI servers use a naming service
(rmiregistry) to register remote objects
 RMI servers use a special security policy
implemented by RMISecurityManager
 The default RMI transport mechanism is via
TCP sockets – this is transparent to RMI
code!
 Any object transferred in an RMI call must
implement the Serializable interface
Netprog 2000 - Java Network Programming 16
Java Naming & Directory
Interface (JNDI)
 JNDI provides a generic API that can be used
to interface with any naming system
 JNDI uses SPIs (service provider interfaces)
to access many different types of naming &
directory services from the JNDI API
 Sun supplies JNDI SPIs for LDAP, NIS, COS
(CORBA naming), RMI registry & local
filesystem

Netprog 2000 - Java Network Programming 17

You might also like