1. Trang chủ
  2. » Giáo án - Bài giảng

baBài giảng - giáo án: Bài giảng Java Chương 7 lập TRÌNH CLIENTSERVER

34 607 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 1,21 MB

Nội dung

LẬP TRÌNH JAVA NC Chương 07: LẬP TRÌNH CLIENT/SERVER Bộ môn: Lập trình máy tính Nội dung của chương 07Giao tiếp trên Internet ✦ Dịch vụ Server và khái niệm cổng ✦ Giao tiếp Client/Server và Socket ✦ Các lớp cần thiết của gói thư viện java.net ✦ Sử dụng TCP Socket ✦ Xây dựng chương trình ở Client ✦ Xây dựng chương trình ở Server Tầng ứng dụng Mục đích: ✦ Định nghĩa, sự hoạt động của các giao thức trong tầng ứng dụng. – Kiểu khách - người phục vụ (client- server) – Những mô hình phục vụ – Tìm hiểu về các giao thức trên tầng ứng dụng thông qua các ví dụ cụ thể. Nâng cao ✦ Các giao thức đặc biệt: – HTTP – ftp – SMTP – pop – dns ✦ Lập trình các ứng dụng mạng socket API Trình ứng dụng và giao thức tầng ứng dụng Trình ứng dụng : truyền thông, các tiến trình phân tán – Chạy trên các host(“user space”) – Trao đổi thông điệp. – e.g., email, ftp, Web Giao thức tầng ứng dụng – Là một phần của trình ứng dụng. – Xác đình thông điệp trao đổi giữa các ứng dụng. – Sử dụng các dịch vụ truyền thông cung cấp bởi các giao thức tầng dưới (TCP, UDP) application transport network data link physical application transport network data link physical application transport network data link physical Một số thuật ngữ trình ứng dụng mạng Tiến trình : là chương trình chạy trên host. ✦ Trong cùng một host, hai tiến trình có thể truyền thông với nhau qua interprocess communication (điều khiển bởi hệ điều hành). ✦ Các tiến trình chạy trên các host khác nhau truyền thông qua giao thức tầng ứng dụng. ✦ user agent: là phần mềm xử lý giao diện giữa người dùng và mạng. – Thực hiện theo các giao thức tầng ứng dụng. – Web: browser – E-mail: mail reader – streaming audio/video: media player Mô hình Client-Server Đặc trưng cho ứng dụng gồm hai thành phần : clien t và s er ver application transport network data link physical application transport network data link physical Client: ✦ Khởi tạo giao tiếp với server (“speaks first”) ✦ Yêu cầu dịch vụ từ server. ✦ Web : client nhận và hiển thị web page ; e-mail: các trình đọc thư. Server: ✦ Cung cấp những dịch vụ được yêu cầu từ Client ✦ e.g., Web server gửi Web page, Mail server phân phát e-mail request reply Giao thức tầng ứng dụng API: application programming interface ✦ Định ra giao diện giữa tầng ứng dụng và tầng mạng. ✦ Socket : Internet API – Hai tiến trình truyền thông bằng cách gửi/đọc dữ liệu vào/từ socket. Q: Phân biệt các tiến trình bằng cách nào? – Địa chỉ IP của host. – “Số hiệu cổng”: cho phép bên host nhận phân biết các tiến trình cục bộ. Dịch vụ Cổng FPT 21 HTTP 80 Telnet 23 Finger 79 SMTP 25 Các dịch vụ tầng giao vận cung cấp cho ứng dụng? Mất mát dữ liệu(Data loss) ✦ Một số ứng dụng(e.g., audio) có thể chấp nhận một số mất mát. ✦ Một số ứng dụng lại đòi hỏi (e.g., file transfer, telnet) 100% dữ liệu truyền tin cậy. Thời gian(Timing) ✦ Một số ứng dụng (e.g.,hội thoại qua Internet,các trò chơi hành động) đòi hỏi độ trễ thấp. Băng thông(Bandwidth) ✦ Một số ứng dụng(e.g., multimedia) yêu cầu băng thông tối thiểu để có thể truyền thông hiệu quả. ✦ Một số ứng dụng khác (“elastic apps”) lại có thể sử dụng bất cứ băng thông nào mà chúng nhận được. Các yêu cầu cho một số ứng dụng Application file transfer e-mail Web documents real-time audio/video stored audio/video interactive games financial apps Data loss no loss no loss loss-tolerant loss-tolerant loss-tolerant loss-tolerant no loss Bandwidth elastic elastic elastic audio: 5Kb-1Mb video:10Kb-5Mb same as above few Kbps up elastic Time Sensitive no no no yes, 100’s msec yes, few secs yes, 100’s msec yes and no Dịch vụ của các giao thức giao vận trên Internet Dịch vụ TCP: ✦ Hướng kết nối : Yêu cầu thiết lập kết nối giữa client và server. ✦ Truyền dữ liệu tin cậy giữa tiến trình gửi và nhận ✦ Điều tiết luồng : bên gửi sẽ không làm “lụt” bên nhận. ✦ Điều tiết tắc nghẽn: điều chỉnh tốc độ gửi khi mạng quá tải. ✦ Không hỗ trợ : thời gian, băng thông tối thiểu. Dịch vụ UDP: ✦ Truyền dữ liệu không tin cậy giữa các tiến trình gửi và nhận. ✦ Không hỗ trợ : thiết lập kết nối, độ tin cậy, điều tiết luồng, điều tiết tắc nghẽn,thời gian,băng thông tối thiểu. Q: Tại sao một số ứng dụng dùng UDP? [...]... datagram khác đến Lập trình Socket: tham khảo C-language tutorial (audio/slides): 3 “Unix Network Programming” (J Kurose), HTTP://manic.cs.umass.edu/~amldemo/courseware/intro Java- tutorials: 3 “All About Sockets” (Sun tutorial), HTTP://www.javaworld.com/javaworld/jw-1 2-1 996/jw12-sockets.html 3 “Socket Programming in Java: a tutorial,” HTTP://www.javaworld.com/javaworld/jw-1 2-1 996/jw12-sockets.html CHÚC... byte socket a host-local, applicationcreated/owned, OS-controlled interface (a “door”) into which application process can both send and receive messages to/from another (remote or local) application process Lập trình Socket TCP Socket: Là “cánh cửa” giữa tiến trình tầng ứng dụng và giao thức giao vận end-end (UCP/TCP) TCP: là dịch vụ truyền tin cậy theo bytes từ tiến trình này đến tiến trình khác Người... khiển Điều khiển bởi hệ điều hành Lập trình Socket TCP Client phải giao tiếp với server 3 Tiến trình trên server phải đang chạy 3 server phải tạo sẵn socket (door) để tiếp nhận yêu cầu của client Client giao tiếp với server bắng cách: 3 Tạo client-local TCP socket 3 Xác định địa chỉ IP,số hiệu cổng của tiến trình trên server 3 3 Khi client tạo socket: client TCP thiết lập kết nối tới server TCP Khi nhận... String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } } Ví dụ về Java server (UDP) import java. io.*; import java. net.*; Tạo datagram socket ở cổng 9 876 class UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9 876 ); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { Tạo... clientSocket.close(); } } Ví dụ về Java Server (TCP) import java. io.*; import java. net.*; class TCPServer { Tạo sẵn Socket ở cổng 678 9 Đợi đến khi có socket từ client gửi đến Tạo input stream, đính kèm vào socket public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket( 678 9); while(true) { Socket connectionSocket... close clientSocket Ví dụ về Java client (UDP) input stream Client Process monitor inFromUser keyboard Input: receives process packet (TCP received “byte stream”) UDP packet receivePacket packet (TCP sent “byte stream”) sendPacket Output: sends client UDP clientSocket socket to network from network UDP packet UDP socket Ví dụ về Java client (UDP) import java. io.*; import java. net.*; class UDPClient... về Java Server (TCP) import java. io.*; import java. net.*; class TCPClient { public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence; Tạo input stream Tạo client socket, kết nối tới server Tạo output stream, đính kèm vàosocket BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); Socket clientSocket = new Socket("hostname", 678 9);... byte – public String getHostAddress(): trả về địa chỉ IP của đối tượng InetAddress theo dạng String Ví dụ: Chương trình lấy thông tin địa chỉ máy chủ import java. net.*; public class AddrLookupApp { public static void main(String[] args) { try { if (args.length!=1) { System.out.println("Usage: Java AddrLookupApp "); return;} InetAddress host = InetAddress.getByName(args[0]); String hostName... giao vận tương ứng Application e-mail remote terminal access Web file transfer streaming multimedia remote file server Internet telephony Application layer protocol Underlying transport protocol SMTP [RFC 821] telnet [RFC 854] HTTP [RFC 2068] ftp [RFC 959] proprietary (e.g RealNetworks) NSF proprietary (e.g., Vocaltec) TCP TCP TCP TCP TCP or UDP TCP or UDP typically UDP Lập trình Socket Mục đích : Nghiên... Socket của máy khách – synchronized void close(): Cắt đứt kết nối với máy khách Lập trình Socket TCP Client Process process output stream: sequence of bytes out of process output stream monitor Input stream: sequence of bytes into process inFromServer input stream inFromUser keyboard outToServer Ví dụ một ứng dụng client-server: 3 Client đọc một dòng kí tự từ input chuẩn (inFromUser stream) , gửi tới . LẬP TRÌNH JAVA NC Chương 07: LẬP TRÌNH CLIENT/SERVER Bộ môn: Lập trình máy tính Nội dung của chương 07 ✦ Giao tiếp trên Internet ✦ Dịch vụ Server. – HTTP – ftp – SMTP – pop – dns ✦ Lập trình các ứng dụng mạng socket API Trình ứng dụng và giao thức tầng ứng dụng Trình ứng dụng : truyền thông, các tiến trình phân tán – Chạy trên các host(“user. socket. Lập trình Socket TCP Socket: Là “cánh cửa” giữa tiến trình tầng ứng dụng và giao thức giao vận end-end (UCP/TCP) TCP: là dịch vụ truyền tin cậy theo bytes từ tiến trình này đến tiến trình

Ngày đăng: 17/04/2014, 11:50

TỪ KHÓA LIÊN QUAN

w