Network Programming
Download
Report
Transcript Network Programming
Network Programming
授課教師 : 詹益禎
中文課名 : 網路程式設計
學分時數 : 3學分\3小時
助教 :李宏杰、趙振宣
教室 : 32310
上課時間 : 9:05~12:00 (Wed.)
Objective
This course will provides practical guidance on
the essential aspects of network programming
with Java, including the concepts of Web, files,
streams, threads, the use of varied sockets, nonblocking I/O, URLConnections, protocol handlers,
content handlers and Remote method invocation.
The aim is to enable students to pick up these
vital skill and be capable of writing varied
network programs with Java.
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
2
Material
Elliotte R. Harold, “Java Network Programming”,
3rd Edition, O’Reilly, 2004.
H. M. Deitel and P. J. Deitel, “Java How to
Program”, 8th Edition, Prentice Hall, 2009.
Jan Graba, “An Introduction to network
programming with Java”, 1st Edition, Addison
Wesley, 2003.
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
3
Grading Policy
Quiz: 5 % (10/21)
Midterm: 25% (11/11)
Final: 30% (1/13)
Homework: 40%
Class Participation: 5~10% (bonus)
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
4
Outline
Why Networked Java
Basic Network Concepts
Basic Web Concepts
Introduction to Java Programming
Streams
Threads
Looking Up Internet Addresses
Sockets for Clients
Sockets for Servers
Secure Sockets
Non-Blocking I/O
UDP Datagrams and Sockets
Multicast Sockets
Remote Method Invocation
URLs and URIs
HTML in Swing
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
5
Why Networked Java
What can a network program do ?
Security
But wait ! There’s more!
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
6
Basic Network Concepts
Networks
The Layers of a Network
IP, TCP, and UDP
The Internet
The Client/Server Model
Internet Standards
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
7
Basic Web Concepts
URIs
HTML, SGML, and XML
HTTP
MIME Media Types
Server Side Programs
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
8
Introduction to Java Programming
The first Java program
Classes and Objects
Control Statements
Files
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
9
Streams
Output Streams
Input Streams
Filter Streams
Readers and Writers
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
10
Threads
Running Threads
Returning Information from a Thread
Synchronization
Deadlock
Thread Scheduling
Thread Pools
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
11
Looking Up Internet Addresses
The InetAddress Class
Inet4Address and Inet6Address
The NetworkInterface Class
Some Useful Programs
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
12
Sockets for Clients
Socket Basics
Investigating Protocols with Telnet
The Socket Class
Socket Exceptions
Socket Addresses
Examples
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
13
Sockets for Servers
The ServerSocket Class
Some Useful Servers
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
14
Secure Sockets
Secure Communications
Creating Secure Client Sockets
Methods of the SSLSocket Class
Creating Secure Server Sockets
Methods of the SSLServerSocket Class
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
15
Non-Blocking I/O
An Example Client
An Example Server
Buffers
Channels
Readiness Selection
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
16
UDP Datagrams and Sockets
The UDP Protocol
The DatagramPacket Class
The DatagramSocket Class
Some Useful Applications
DatagramChannel
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
17
Multicast Sockets
What Is a Multicast Socket?
Working with Multicast Sockets
Two Simple Examples
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
18
Remote Method Invocation
What Is Remote Method Invocation?
Implementation
Loading Classes at Runtime
The java.rmi Package
The java.rmi.registry Package
The java.rmi.server Package
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
19
URLs and URIs
The URL Class
The URLEncoder and URLDecoder Classes
The URI Class
Proxies
Communicating with Server-Side Programs
Through GET
Accessing Password-Protected Sites
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
20
HTML in Swing
HTML on Components
JEditorPane
Parsing HTML
Cookies
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
21
Welcome for joining
the course.
NCUE CSIE Y. C. Chan
Network Programming - Fall 2008
22