java networking ii
DESCRIPTION
Java Networking II. IS 313 5.22.2003. Outline. Socket review URL classes Server programming example Homework #4. Outline. Homework #3 solution Homework #4 Socket review HTTP Protocol URL and URLConnection Example. Sockets Review. For applications to communicate, they need - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/1.jpg)
Java Networking IIIS 313
5.22.2003
![Page 2: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/2.jpg)
Outline Socket review URL classes Server programming example Homework #4
![Page 3: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/3.jpg)
Outline Homework #3 solution Homework #4 Socket review HTTP Protocol URL and URLConnection Example
![Page 4: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/4.jpg)
Sockets Review For applications to communicate, they
need a transport mechanism an addressing mechanism way to interact with these mechanisms
For client/server applications client = caller, originates requests server = listener, handles requests
![Page 5: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/5.jpg)
Sockets Review II Transport mechanism
TCP/IP bi-directional data stream
Addressing mechanism hostname port number
![Page 6: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/6.jpg)
Sockets Review III Java classes
Socket for client ServerSocket for server
But a call to accept returns with a regular Socket
when a client connects
![Page 7: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/7.jpg)
Socket Review IV Multi-threading
Extremely important for server applications One thread listens continuously for connections Other threads handle requests
![Page 8: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/8.jpg)
Server Programming Example WeatherServer Protocol
one line commands: ADD and INFO one line responses
![Page 9: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/9.jpg)
Homework #4 Networked version of FFGUIMode In other words
turn FFGUIMode into a server client already exists
![Page 10: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/10.jpg)
Objectives Add server thread to FFGUIMode to listen
for connections Add worker threads to execute commands Add a Server menu to interface Synchronize database access
![Page 11: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/11.jpg)
New Package Structure core
Command, CommandMap and basic commands cmd
command implementations db
database ui
user interface client
a text mode client server
to be added
![Page 12: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/12.jpg)
Client TextModeClient Looks like old FFTextMode but
instead of creating and executing command objects
it sends messages to a server What should those messages look like?
![Page 13: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/13.jpg)
Homework #4 Protocol Request #1
prompts command: name
Response #1 OK Enter first name: Enter last name:
Request #2 parameters command: name
Response #2 OK first last
Request #3 name first: Marilyn last: Monroe
Response #3 OK Members with name: Marilyn Monroe 54045 Monroe Marilyn 01/01/2003 75500 3
Request #4 parameters command: nmae
Response #4 ERROR Unknown command: nmae
![Page 14: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/14.jpg)
Stateless Protocol Each request is a single connection Worker thread
handles a single request then terminates
Simplifies implementation
![Page 15: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/15.jpg)
Alternatives Session
login make text mode requests logout worker handles whole interaction
Multi-request transmit name of command subsequent requests relative to command worker handles whole command
![Page 16: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/16.jpg)
Example Program as it should run Using telnet to test
![Page 17: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/17.jpg)
URL classes
![Page 18: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/18.jpg)
HTTP Protocol Request
“I want something” Response
“Here it is” or “Not found”
Headers Body
![Page 19: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/19.jpg)
HTTP Response Example
![Page 20: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/20.jpg)
Stateless HTTP is stateless Each request is treated independently of
others Problems
authorization identity “sessions”
![Page 21: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/21.jpg)
URL Example
http://www.cti.depaul.edu/people/ Parts
Protocol Host Port Path
![Page 22: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/22.jpg)
In Java URL classes
new URL (http://www.cti.depaul.edu/”) Simplest case
url.getInputStream() read from downloaded document
![Page 23: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/23.jpg)
URLConnection url.getConnection() with URLConnection
initially “unconnected” state can modify request properties/headers
connect() or getInputStream() “connected” state can read response properties/headers
![Page 24: Java Networking II](https://reader035.vdocuments.net/reader035/viewer/2022081501/56814868550346895db57711/html5/thumbnails/24.jpg)
Example