Bài giảng Lập trình mạng bằng Java

1.1 Tổng quát vềTCP/IP (tt)

• Địa chỉInternet:

ª Định vịduy nhất một máy

ª Chiều dài 32 bit

ª Cấu trúc IP (netid, hostid), các máy trên một mạng

có netid giống nhau.

ª Do NIC cấp

ª Cách biểu diễn:

10101100 00011100 00010000 00000101

172 28 16 5

172.28.16.5

pdf76 trang | Chia sẻ: oanh_nt | Lượt xem: 2055 | Lượt tải: 1download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình mạng bằng Java, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bách Khoa Online: hutonline.net Tìm kiếm & download ebook: bookilook.com Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 1Lập trình mạng – Chương 1 1 Nội dung môn học CHƯƠNG 1: GIỚI THIỆU VỀ TCP/IP CHƯƠNG 2: THIẾT KẾ GIẢI THUẬT CHO CHƯƠNG TRÌNH CLIENT/SERVER CHƯƠNG 3: LẬP TRÌNH MẠNG TRÊN CÁC MÔI TRUỜNG PHỔ DỤNG CHƯƠNG 4: LẬP TRÌNH MẠNG VỚI JAVA Lập trình mạng – Chương 1 2 Nội dung môn học(tt) CHƯƠNG 5: LẬP TRÌNH WEB — CGI CHƯƠNG 6: LẬP TRÌNH WEB VỚI CÁC CÔNG NGHỆ PHỔ BIẾN CHƯƠNG 7: ỨNG DỤNG XML TRONG LẬP TRÌNH MẠNG CHƯƠNG 8: BẢO MẬT DỮ LIỆU TRUYỀN Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 2Lập trình mạng – Chương 1 3 Tài liệu tham khảo • [1] Douglas E. Comer, Internetworking with TCP/IP, Prentice-Hall,1993. • [2] W. Richard Stevens, Unix Network Programming, Prentice-Hall,1990. • [3] Arthur Dumas, Programming Winsock, Sams Publishing,1995. • [4] Merlin, Conrad Hughes ..., Java Network Programming, Manning Publications Co., 1997. • [5] D. Travis Dewire, Second-Generation Client/Server Computing, Mc Graw-Hill, 1997. • [6] John Shapley Gray, Interprocess Comunication in UNIX, Prentice-Hall,1997. • [7] Deitel & Deitel. Java How to program, 3th edition, Prentice-Hall,1999. • [8] Richard Anderson, ..., Professional Active Server Pages 3.0, Wrox Press, 1999. • [9] Marty Hall, Core Servlet and Java Server Pages, Prentice-Hall PTR, 2000 • [10] MSDN. • [11] Tập tài liệu RFC. Lập trình mạng – Chương 1 4 Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 3Lập trình mạng – Chương 1 5 CHƯƠNG 1 GIỚI THIỆU VỀ TCP/IP 1.1 Tổng quát về TCP/IP. 1.2 Các giao thức và dịch vụ trên TCP/IP. 1.3 Khái niệm về Socket. 1.4 Một số ứng dụng mạng. Lập trình mạng – Chương 1 6 1.1 Tổng quát về TCP/IP. Telnet FTP SMTP DNS SNMP TCP UDP ICMP IPARP Ethernet Token Ring FDDI WANsNetwork interface layer Internet layer (gateway level) Transport layer (host level) Applications layer TCP/IPOSI Application Presentation Session Transport Network Data link Physical Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 4Lập trình mạng – Chương 1 7 1.1 Tổng quát về TCP/IP (tt) • Một số đặc tính : – Độc lập về hình thái của mạng. – Độc lập về phần cứng của mạng. – Các chuẩn giao thức mở. – Mô hình địa chỉ toàn cầu. – Nền tảng client/server mạnh mẽ. – Các chuẩn về giao thức ứng dụng mạnh mẽ. Lập trình mạng – Chương 1 8 1.1 Tổng quát về TCP/IP (tt) Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 5Lập trình mạng – Chương 1 9 1.1 Tổng quát về TCP/IP (tt) • Địa chỉ Internet: ª Định vị duy nhất một máy ª Chiều dài 32 bit ª Cấu trúc IP (netid, hostid), các máy trên một mạng có netid giống nhau. ª Do NIC cấp ª Cách biểu diễn: 10101100 00011100 00010000 00000101 172 28 16 5 172.28.16.5 Lập trình mạng – Chương 1 10 1.1 Tổng quát về TCP/IP (tt) • Phân lớp địa chỉ: – Để xác định netid (Network Identifier) và hostid (Host Identifier) Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 6Lập trình mạng – Chương 1 11 1.1 Tổng quát về TCP/IP (tt) • Một số địa chỉ IP đặc biệt Lập trình mạng – Chương 1 12 1.1 Tổng quát về TCP/IP (tt) • Lớp Transport – Cung cấp giao tiếp luận lý giữa các processes trên các hosts khác nhau – Có hai dạng dịch vụ: • TCP (Transmittion Control Protocol) • UDP (User Datagram Protocol) application transport network data link physical application transport network data link physical network data link physical network data link physical network data link physical network data link physicalnetwork data link physical logical end-end transport Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 7Lập trình mạng – Chương 1 13 1.1 Tổng quát về TCP/IP (tt) • Lớp Transport (tt) – Mở rộng cách đánh địa chỉ cho process. – Địa chỉ port : xác định ứng dụng mạng trên mỗi máy. – Địa chỉ của một ứng dụng mạng (IP,port) Lập trình mạng – Chương 1 14 1.2 Các giao thức và dịch vụ • Hệ thống tên miền DNS (Domain Name System) – Dùng chuỗi ký tự để đánh địa chỉ, không phân biệt chữ hoa, thường, mỗi thành phần có thể 63 ký tự và tên đầy đủ không dài quá 255, dưới đây gọi là tên. – Tên được đặt theo cây phân cấp – Địa chỉ tài nguyên biểu diễn dạng tên được hình thành từ nó cho đến root Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 8Lập trình mạng – Chương 1 15 1.2 Các giao thức và dịch vụ (tt) • Hệ thống tên miền DNS (tt) Lập trình mạng – Chương 1 16 1.2 Các giao thức và dịch vụ(tt) • Hệ thống tên miền DNS (tt) – Network chỉ hiểu địa chỉ IP (binary) => ánh xạ giữa địa chỉ IP và tên. – Hệ thống tên miền được hiện thực theo distributed database, quản lý theo dạng phân cấp với name servers – Network chỉ hiểu địa chỉ IP (binary) => ánh xạ giữa địa chỉ IP và tên. – Mỗi ứng dụng mạng phải chuyển tên sang địa chỉ IP Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 9Lập trình mạng – Chương 1 17 1.2 Các giao thức và dịch vụ(tt) • DNS (tt) – Ứng dụng giao tiếp với local name server để hỏi địa chỉ ánh xạ. – Local name server sẽ trả lời hoặc request tiếp… requesting host surf.eurecom.fr gaia.cs.umass.edu root name server local name server dns.eurecom.fr 1 2 3 4 5 6 authoritative name server dns.cs.umass.edu intermediate name server dns.umass.edu 7 8 iterated query Lập trình mạng – Chương 1 18 1.2 Các giao thức và dịch vụ(tt) • Giao thức ở lớp ứng dụng –Ứng dụng mạng : trao đổi thông tin giữa các processes trên mạng. – Các ứng dụng phải định nghĩa protocol để giao tiếp với nhau. – Protocol qui định thứ tự các thông điệp trao đổi, hành động khi nhận mỗi loại thông điệp. –Ứng dụng cũng phải hiện thực phần giao tiếp với người dùng. Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 10 Lập trình mạng – Chương 1 19 1.2 Các giao thức và dịch vụ(tt) • Giao thức ở lớp ứng dụng(tt) – User agent là giao tiếp giữa người sử dụng và ứng dụng mạng. • Web:browser • E-mail: mail reader • streaming audio/video: media player Lập trình mạng – Chương 1 20 1.2 Các giao thức và dịch vụ(tt) • Mô hình mạng client/server – Server : là phần tử thụ động • Chờ yêu cầu từ client, xử lý và trả kết quả cho client – Client : là phần tử chủ động • Kết nối đến server để gởi yêu cầu. • Chờ nhận kết quả trả về và xử lý kết quả. Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 11 Lập trình mạng – Chương 1 21 1.2 Các giao thức và dịch vụ(tt) • State và Stateless – State : lưu giữ trạng thái giữa các lần kết nối (request/response). – Stateless : Mỗi lần request/response thì cầu nối hủy bỏ. Không giữ trạng trái trước đó. Lập trình mạng – Chương 1 22 1.3 Khái niệm về Socket. • Socket API – Được giới thiệu ở BSD4.1 UNIX, 1981 – Được ứng dụng khởi tạo, sử dụng hay hủy bỏ – Dùng cơ chế client/server – Cung cấp hai dịch vụ chuyển dữ liệu thông qua socket API: • unreliable datagram • reliable, byte stream-oriented Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 12 Lập trình mạng – Chương 1 23 1.3 Khái niệm về Socket(tt) • Socket : – Là môi trường để các process ứng dụng giao tiếp với nhau, process ứng dụng có thể chạy trên cùng một máy hoặc trên hai máy khác nhau. – Được ứng dụng tạo ra và sử dụng tuy nhiên được hệ thống (hệ điều hành) kiểm soát. Lập trình mạng – Chương 1 24 1.3 Khái niệm về Socket(tt) • Socket: “cửa” nằm giữa process ứng dụng và end-end- transport protocol (UCP or TCP) • TCP service: dịch vụ truyền tin cậy chuỗi bytes giữa hai process process TCP with buffers, variables socket controlled by application developer controlled by operating system host or server process TCP with buffers, variables socket controlled by application developer controlled by operating system host or server internet Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 13 Lập trình mạng – Chương 1 25 1.3 Khái niệm về Socket(tt) • Lập trình socket với TCP – Client phải kết nối đến server • server process phải chạy trước (phần tử thụ động) • server phải tạo một socket để lắng nghe và chấp nhận các kết nối từ client – Client kết nối đến server bằng cách: • Khởi tạo TCP socket ở local • Xác định IP address, port number của server process và kết nối đến Lập trình mạng – Chương 1 26 1.3 Khái niệm về Socket(tt) • Lập trình socket với TCP(tt) – Sau khi client khởi tạo socket, nó sẽ thiết lập kết nối đến server – Khi server nhận yêu cầu kết nối, nó sẽ chấp nhận yêu cầu và khởi tạo socket mới để giao tiếp với client. • Cho phép server chấp nhận nhiều client tại một thời điểm. Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 14 Lập trình mạng – Chương 1 27 1.3 Khái niệm về Socket(tt) wait for incoming connection request connectionSocket = welcomeSocket.accept() create socket, port=x, for incoming request: welcomeSocket = ServerSocket() create socket, connect to hostid, port=x clientSocket = Socket() close connectionSocket read reply from clientSocket close clientSocket Server (running on hostid) Client send request using clientSocketread request from connectionSocket write reply to connectionSocket TCP connection setup Lập trình mạng – Chương 1 28 Example: Java client (TCP) import java.io.*; import java.net.*; class TCPClient { public static void main(String argv[]) throws Exception { String sentence; String modifiedSentence; BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); Socket clientSocket = new Socket("hostname", 6789); DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); Create input stream Create client socket, connect to server Create output stream attached to socket Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 15 Lập trình mạng – Chương 1 29 Example: Java client (TCP), cont. BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); sentence = inFromUser.readLine(); outToServer.writeBytes(sentence + '\n'); modifiedSentence = inFromServer.readLine(); System.out.println("FROM SERVER: " + modifiedSentence); clientSocket.close(); } } Create input stream attached to socket Send line to server Read line from server Lập trình mạng – Chương 1 30 Example: Java server (TCP) import java.io.*; import java.net.*; class TCPServer { public static void main(String argv[]) throws Exception { String clientSentence; String capitalizedSentence; ServerSocket welcomeSocket = new ServerSocket(6789); while(true) { Socket connectionSocket = welcomeSocket.accept(); BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); Create welcoming socket at port 6789 Wait, on welcoming socket for contact by client Create input stream, attached to socket Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 16 Lập trình mạng – Chương 1 31 Example: Java server (TCP), cont DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); capitalizedSentence = clientSentence.toUpperCase() + '\n'; outToClient.writeBytes(capitalizedSentence); } } } Read in line from socket Create output stream, attached to socket Write out line to socket End of while loop, loop back and wait for another client connection Lập trình mạng – Chương 1 32 1.3 Khái niệm về Socket(tt) • Lập trình socket với UTP – Cung cấp cơ chế truyền không tin cậy các nhóm các byte (datagrams) giữa client và server. – Không cần thiết lập kết nối giữa client với server. – Sender phải gởi kèm địa chỉ IP và port đích – Server khi nhận dữ liệu sẽ phân tích địa chỉ của sender để truyền lại. Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 17 Lập trình mạng – Chương 1 33 1.3 Khái niệm về Socket(tt) • Lập trình socket với UTP(tt) close clientSocket Server (running on hostid) read reply from clientSocket create socket, clientSocket = DatagramSocket() Client Create, address (hostid, port=x, send datagram request using clientSocket create socket, port=x, for incoming request: serverSocket = DatagramSocket() read request from serverSocket write reply to serverSocket specifying client host address, port umber Lập trình mạng – Chương 1 34 Example: Java client (UDP) import java.io.*; import java.net.*; class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("hostname"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); Create input stream Create client socket Translate hostname to IP address using DNS Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 18 Lập trình mạng – Chương 1 35 Example: Java client (UDP), cont. DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } } Create datagram with data-to-send, length, IP addr, port Send datagram to server Read datagram from server Lập trình mạng – Chương 1 36 Example: Java server (UDP) import java.io.*; import java.net.*; class UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket); Create datagram socket at port 9876 Create space for received datagram Receive datagram Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 19 Lập trình mạng – Chương 1 37 Example: Java server (UDP), cont String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket); } } } Get IP addr port #, of sender Write out datagram to socket End of while loop, loop back and wait for another datagram Create datagram to send to client Lập trình mạng – Chương 1 38 1.4 Một số ứng dụng mạng. • World Wide Web (W W W) – Dùng giao thức http: hypertext transfer protocol – Web’s application layer protocol – Mô hình client/server • client: browser gởi yêu cầu, nhận và hiển thị kết quả. • server: Web server gởi kết quả cho client đối với mỗi request. – http1.0: RFC 1945 – http1.1: RFC 2068 PC running Explorer Server running NCSA Web server Mac running Navigator http request htt p re que st http response htt p re spo nse Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 20 Lập trình mạng – Chương 1 39 1.4 Một số ứng dụng mạng(tt) • W W W (tt) – http: TCP transport service: • client khởi tạo TCP connection (tạo socket) đến server, port 80 (default) • server chấp nhận kết nối từ client • http messages (application-layer protocol messages) được trao đổi giữa browser (http client) và Web server (http server) • đóng TCP connection Lập trình mạng – Chương 1 40 1.4 Một số ứng dụng mạng(tt) • W W W (tt) – Ví dụ – User đánh địa chỉ URL lên browser 1a. http client tạo TCP connection (tạo socket) đến http server ở www.dit.hcmut.edu.vn Port 80 2. http client gởi http request message (chứa đường dẫn) thông qua TCP connection socket 1b. http server ở địa chỉ www.dit.hcmut.edu.vn đang chờ đợi kết nối ở port 80, chấp nhận kết nối và notifying đến client time Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 21 Lập trình mạng – Chương 1 41 1.4 Một số ứng dụng mạng(tt) • W W W (tt) – Ví dụ 6. Lặp lại các bước 1-5 cho mỗi liên kết(object) 4. http server đóng cầu nối TCP time 3. http server nhận yêu cầu, tạo response message (/~phu/courses/net- programming/index.html) trả kết quả, gởi message qua socket 5. http client nhận response message chứa file html và hiển thị. Phân tích file html để tìm các liên kết Lập trình mạng – Chương 1 42 1.4 Một số ứng dụng mạng(tt) • W W W (tt) – Có hai dạng message trong http : request, response – http request message: • ASCII (human-readable format) Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 22 Lập trình mạng – Chương 1 43 1.4 Một số ứng dụng mạng(tt) • W W W (tt) – http request message: GET /~phu/index.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:vn (extra carriage return, line feed) request line (GET, POST, HEAD commands) header lines Carriage return, line feed indicates end of message Lập trình mạng – Chương 1 44 1.4 Một số ứng dụng mạng(tt) • W W W (tt) – http response message: HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data ... status line (protocol status code status phrase) header lines data, e.g., requested html file Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 23 Lập trình mạng – Chương 1 45 1.4 Một số ứng dụng mạng(tt) Authentication goal: control access to server documents • stateless: client must present authorization in each request • authorization: typically name, password – authorization: header line in request – if no authorization presented, server refuses access, sends WWW authenticate: header line in response client server usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization:line usual http response msg usual http request msg + Authorization:line usual http response msg time Browser caches name & password so that user does not have to repeatedly enter it. Lập trình mạng – Chương 1 46 1.4 Một số ứng dụng mạng(tt) Cookies • server sends “cookie” to client in response mst Set-cookie: 1678453 • client presents cookie in later requests cookie: 1678453 • server matches presented- cookie with server-stored info – authentication – remembering user preferences, previous choices client server usual http request msg usual http response + Set-cookie: # usual http request msg cookie: # usual http response msg usual http request msg cookie: # usual http response msg cookie- spectific action cookie- spectific action Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 24 Lập trình mạng – Chương 1 47 1.4 Một số ứng dụng mạng(tt) Conditional GET • Goal: don’t send object if client has up-to-date stored (cached) version • client: specify date of cached copy in http request If-modified-since: • server: response contains no object if cached copy up-to-date: HTTP/1.0 304 Not Modified client server http request msg If-modified-since: http response HTTP/1.0 304 Not Modified object not modified http request msg If-modified-since: http response HTTP/1.1 200 OK … object modified Lập trình mạng – Chương 1 48 1.4 Một số ứng dụng mạng(tt) file transfer FTP server FTP user interface FTP client local file system remote file system user at host • File Transfer Protocol (ftp) – Chuyển file từ local đến server hoặc lấy file từ server về local. – Hoạt động theo cơ chế client/server – FTP server chạy ở port 21. – Tham khảo : RFC 959 Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 25 Lập trình mạng – Chương 1 49 1.4 Một số ứng dụng mạng(tt) • FTP (tt) – ftp client giao tiếp đến ftp server qua TCP ở port 21 – Hai cầu nối TCP được thiết lập: • control: exchange commands, responses between client, server. “out of band control” • data: file data to/from server – ftp server hiện thực cơ chế “state”: current directory, earlier authentication Lập trình mạng – Chương 1 50 1.4 Một số ứng dụng mạng(tt) Sample commands: • sent as ASCII text over control channel • USER username • PASS password • LIST return list of file in current directory • RETR filename retrieves (gets) file • STOR filename stores (puts) file onto remote host Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 26 Lập trình mạng – Chương 1 51 1.4 Một số ứng dụng mạng(tt) Sample return codes • status code and phrase (as in http) • 331 Username OK, password required • 125 data connection already open; transfer starting • 425 Can’t open data connection • 452 Error writing file Lập trình mạng – Chương 1 52 1.4 Một số ứng dụng mạng(tt) • Hệ thống E-mail – RFC 821, 822 – SMTP: port 25 – POP3: port 110 – IMAP: port 143 user mailbox outgoing message queue mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP SMTP SMTP Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 27 Lập trình mạng – Chương 1 53 1.4 Một số ứng dụng mạng(tt) Hệ thống E-mail – Ví dụ vê SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 alice@crepes.fr... Sender ok C: RCPT TO: S: 250 bob@hamburger.edu ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection Lập trình mạng – Chương 1 54 Ví dụ về POP3 • client commands: – user: declare username – pass: password • server responses – +OK – -ERR transaction phase, client: • list: list message numbers • retr: retrieve message by number • dele: delete • quit C: list S: 1 498 S: 2 912 S: . C: retr 1 S: S: . C: dele 1 C: retr 2 S: S: . C: dele 2 C: quit S: +OK POP3 server signing off S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 28 Lập trình mạng – Chương 2 55 CHƯƠNG 2 THIẾT KẾ GIẢI THUẬT CHO CHƯƠNG TRÌNH CLIENT/SERVER 2.1 Giao tiếp socket (Socket Interface ) 2.2 Thiết kế giải thuật cho chương trình client 2.3 Thiết kế giải thuật cho chương trình server Lập trình mạng – Chương 2 56 2.1 Giao tiếp socket • Giao tiếp socket (Socket Interface) là các API dùng cho việc lập trình các ứng dụng mạng. • Socket Interface được định nghĩa trong UNIX BSD, dựa trên việc mở rộng tập các system calls (access files). => Phần này chỉ giới thiệu các khái niệm, ý tưởng và các hàm, kiểu dữ liệu dùng cho lập trình mạng với Socket Interface. Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 29 Lập trình mạng – Chương 2 57 2.1 Giao tiếp socket (tt) • Một số cấu trúc dữ liệu – Cấu trúc địa chỉ Internet : định nghĩa dạng dữ liệu cấu trúc trong ngôn ngữ C. Cấu trúc này chỉ có 1 field kiểu u_long chứa địa chỉ IP 32 bit. struct in_addr { u_long s_addr; }; Hình - cấu trúc địa chỉ Internet s_addr in_addr Lập trình mạng – Chương 2 58 2.1 Giao tiếp socket (tt) • Một số cấu trúc dữ liệu (tt) – Cấu trúc địa chỉ socket : • địa chỉ này lưu trữ địa chỉ IP, chỉ số port, và dạng (family protocol) • Tên cấu trúc là sockaddr_in được biểu diễn ở hình trong slide kế. Trong đó: – sin_len: lưu trữ chiều dài cấu trúc của sockaddr_in – sin_family: dạng protocol của socket – sin_port: chỉ số port – sin_addr: địa chỉ in Internet của socket – sin_zero[8]: không dùng, đặt giá trị = 0 Tìm kiếm & download ebook: bookilook.com Bách Khoa Online: hutonline.net 30 Lập trình mạng – Chương 2 59 2.1 Giao tiếp socket (tt) sockaddr_in struct sockaddr_in { u_char sin_len; u_short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; sin_len sin

Các file đính kèm theo tài liệu này:

  • pdflap_trinh_mang_bang_java.pdf
Tài liệu liên quan