networking support in java 2
DESCRIPTION
Networking Support In Java 2. Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park. Overview. Networking Background Concepts Network applications Java’s objected-oriented view Java’s networking API (Application Program Interface). - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/1.jpg)
Networking Support In Java 2
Nelson Padua-Perez
Chau-Wen Tseng
Department of Computer Science
University of Maryland, College Park
![Page 2: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/2.jpg)
Overview
NetworkingBackground
Concepts
Network applications
Java’s objected-oriented view
Java’s networking API
(Application Program Interface)
Last lecture
This lecture
![Page 3: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/3.jpg)
Client / Server Model
Relationship between two computer programs
ClientInitiates communication
Requests services
ServerReceives communication
Provides services
Other modelsMaster / worker
Peer-to-peer (P2P)
Client
Client
ClientServer
ServerClient
![Page 4: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/4.jpg)
Client Programming
Basic steps1. Determine server location – IP address & port
2. Open network connection to server
3. Write data to server (request)
4. Read data from server (response)
5. Close network connection
6. Stop client
![Page 5: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/5.jpg)
Server Programming
Basic steps1. Determine server location - port (& IP address)
2. Create server to listen for connections
3. Open network connection to client
4. Read data from client (request)
5. Write data to client (response)
6. Close network connection to client
7. Stop server
![Page 6: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/6.jpg)
Server Programming
Can support multiple connections / clients
LoopHandles multiple connections in order
MultithreadingAllows multiple simultaneous connections
![Page 7: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/7.jpg)
Client / Server Model Examples
Application Client Server
Web Browsing Internet Explorer, Mozilla Firefox
Apache
Email MS Outlook, Thunderbird
POP, IMAP, SMTP,
Exchange
Streaming Music
Windows Media Player, iTunes
Internet Radio
Online Gaming
Half-Life, Everquest, PartyPoker
Game / Realm Servers
![Page 8: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/8.jpg)
Networking in Java
Packagesjava.net Networking
java.io I/O streams & utilities
java.rmi Remote Method Invocation
java.security Security policies
java.lang Threading classes
Support at multiple levelsData transport Socket classes
Network services URL classes
Utilities & security
![Page 9: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/9.jpg)
Java Networking API
Application Program InterfaceSet of routines, protocols, tools
For building software applications
Java networking APIHelps build network applications
Interfaces to sockets, network resources
Code implementing useful functionality
Includes classes for
Sockets
URLs
![Page 10: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/10.jpg)
Java Networking Classes
IP addressesInetAddress
PacketsDatagramPacket
SocketsSocket
ServerSocket
DatagramSocket
URLsURL
![Page 11: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/11.jpg)
InetAddress Class
Represents an IP address
Can convert domain name to IP addressPerforms DNS lookup
Getting an InetAddress objectgetLocalHost()
getByName(String host)
getByAddress(byte[] addr)
![Page 12: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/12.jpg)
DatagramPacket Class
Each packet containsInetAddress
Port of destination
Data
![Page 13: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/13.jpg)
DatagramPacket Class
Data in packet represented as byte array
![Page 14: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/14.jpg)
DatagramPacket Methods
getAddress()
getData()
getLength()
getPort()
setAddress()
setData()
setLength()
setPort()
![Page 15: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/15.jpg)
Socket Classes
Provides interface to TCP, UDP sockets
SocketTCP client sockets
ServerSocketTCP server sockets
DatagramSocketUDP sockets (server or client)
![Page 16: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/16.jpg)
Socket Class
Creates socket for client
Constructor connects toMachine name or IP address
Port number
Transfer data via streamsSimilar to standard Java I/O streams
![Page 17: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/17.jpg)
Socket Methods
getInputStream()
getOutputStream()
close()
getInetAddress()
getPort()
getLocalPort()
![Page 18: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/18.jpg)
ServerSocket Class
Create socket on server
Constructor specifies local portServer listens to port
UsageBegin waiting after invoking accept()
Listen for connection (from client socket)
Returns Socket for connection
![Page 19: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/19.jpg)
ServerSocket Methods
accept()
close()
getInetAddress()
getLocalPort()
![Page 20: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/20.jpg)
Connection Oriented
TCP Protocol
![Page 21: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/21.jpg)
DatagramSocket Class
Create UDP socketDoes not distinguish server / client sockets
Constructor specifies InetAddress, port
Set up UPD socket connection
Send / receive DatagramPacket
![Page 22: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/22.jpg)
DatagramSocket Methods
close()
getLocalAddress()
getLocalPort()
receive(DatagramPacket p)
send(DatagramPacket p)
setSoTimeout(int t)
getSoTimeout()
![Page 23: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/23.jpg)
Packet Oriented
UDP Protocol
![Page 24: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/24.jpg)
URL Class
Provides high-level access to network data
Abstracts the notion of a connection
Constructor opens network connectionTo resource named by URL
![Page 25: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/25.jpg)
URL Constructors
URL( fullURL )URL( "http://www.cs.umd.edu/class/index.html" )
URL( baseURL, relativeURL )URL base = new URL("http://www.cs.umd.edu/" );
URL class = new URL( base, "/class/index.html " );
URL( protocol, baseURL, relativeURL )URL( "http", www.cs.umd.edu, "/class/index.html" )
URL( protocol, baseURL, port, relativeURL )URL( "http", www.cs.umd.edu, 80,"/class/index.html" )
![Page 26: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/26.jpg)
URL Methods
getProtocol( )
getHost( )
getPort( )
getFile( )
getContent( )
openStream()
openConnection()
![Page 27: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/27.jpg)
URL Connection Classes
High level description of network service
Access resource named by URL
Can define own protocols
ExamplesURLConnection Reads resource
HttpURLConnection Handles web page
JarURLConnection Manipulates Java Archives
URLClassLoader Loads class file into JVM
![Page 28: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/28.jpg)
Java Applets
Applets are Java programs Classes downloaded from network
Run in browser on client
Applets have special security restrictionsExecuted in applet sandbox
Controlled by java.lang.SecurityManager
![Page 29: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/29.jpg)
Applet Sandbox
PreventsLoading libraries
Defining native methods
Accessing local host file system
Running other programs (Runtime.exec())
Listening for connections
Opening sockets to new machines
Except for originating host
Restricted access to system properties
![Page 30: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/30.jpg)
Applet Sandbox
![Page 31: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/31.jpg)
Network Summary
InternetDesigned with multiple layers of abstraction
Underlying medium is unreliable, packet oriented
Provides two views
Reliable, connection oriented (TCP)
Unreliable, packet oriented (UDP)
JavaObject-oriented classes & API
Sockets, URLs
Extensive networking support
![Page 32: Networking Support In Java 2](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813561550346895d9cc72a/html5/thumbnails/32.jpg)
Scanner
Process input streamProvides methods for treating input as String, Int, …
Supports String nextLine(), int nextInt()…
Throws InputMismatchException if wrong format
Example// old approach to scanning inputBufferedReader br = new BufferedReader( new
InputStreamReader(System.in)); String name = br.readLine();// new approach using scannerScanner in = new Scanner(System.in);String name = in.nextLine(); int x = in.nextInt();