Bài giảng Lập trình mạng: Chương 3 - ThS. Trần Đắc Tốt

37 15 0
Bài giảng Lập trình mạng: Chương 3 - ThS. Trần Đắc Tốt

Đ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

Bài giảng Lập trình mạng - Chương 3: Lập trình Socket không hướng kết nối cung cấp cho người học các kiến thức: Mô hình socket không hướng kết nối, một chương trình UDP đơn giản, phân biệt các thông điệp UDP, xử lý một số vấn đề trong lập trình không hướng kết nối, một ứng dụng UDP hoàn chỉnh. Mời các bạn cùng tham khảo.

Chương Lập trình Socket khơng hướng kết nối Mục lục chương Mơ hình socket khơng hướng kết nối Một chương trình UDP đơn gian Phân biệt thông điệp UDP Xử lý số vấn đề lập trình khơng hướng kết nối Một ứng dụng UDP hồn chỉnh Mơ hình Client-Server khơng hướng kết nối Mơ hình ứng dụng Client – Server khơng hướng kết nối Các thao tác phía server để xây dựng ứng dụng Các thao tác phía client để xây dựng ứng dụng Quá trình truyền tin client server Đóng socket Mơ hình Client-Server khơng hướng kết nối Các thao tác để xây dựng ứng dụng client – server không hướng kết nối - Các thao tác phía server - Các thao tác phía client - Q trình truyền nhận liệu - Đóng kết nối Mơ hình ứng dụng client – server không hướng kết nối Các thao tác để xây dựng ứng dụng client – server không hướng kết nối Phía server: - Tạo Sockets - Gắn Sockets với địa cụ thể (binding) Phía Client: - Tạo Sockets - Quá trình truyền nhận liệu - Đóng kết nối Mơ hình ứng dụng client – server không hướng kết nối CÁC THAO TÁC PHÍA SERVER Tạo socket Định danh cho socket (binding) Tạo socket • Sử dụng Sockettype Dgram ProtocolType.Udp tạo socket không hướng kết nối • Ví dụ: IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); Socket newsock = Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); Định danh cho socket • Việc cần thực máy, ta tạm gọi máy chủ Để định danh cho socket ta sử dụng hàm bind • Ví dụ IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); Socket newsock = Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); newsock.Bind(ipep); CÁC THAO TÁC PHÍA CLIENT Tạo socket Việc tạo socket phía client hồn giống với phía server 10 Xử lý vấn đề data • Trong truyền thơng UDP – Khơng dùng đệm – Tồn liệu đến đưa đến hàm ReceiveFrom() – Nếu hàm ReceiveFrom() khơng nhận hết liệu, liệu bị 23 • Ví dụ BadUdpClient.cs 24 • Ví dụ BetterUdpClient.cs 25 Xử lý vấn đề gói tin • Một vấn đề khác truyền thơng UDP có khả gói tin (packets) • Lý truyền thơng UDP khơng có chế để biết gói tin truyền có đến đích hay khơng 26 Xử lý vấn đề gói tin • Để xử lý vấn đề gói tin ta cần cài đặt chế báo nhận, có nghĩa gọi tin nhận từ phía máy khách báo lại cho máy gửi • Nếu sau thời gian máy gửi khơng nhận báo nhận gửi lại gói tin 27 Xử lý vấn đề gói tin • Có hai phương pháp để thực chế báo nhận – Sử dụng socket không đồng với đối tượng thời gian – Sử dụng socket đồng với thiết lập giá trị time-out 28 Sử dụng Socket time-out • Hàm ReceiveFrom() hàm blocking, có nghĩa gọi đến hàm đứng chương trình hàm nhận liệu • Nếu lý mà liệu khơng đến chương trình bị treo 29 Sử dụng Socket time-out • Để giải vấn đề ta cần dùng socket time-out • Ví dụ: – server.SetSocketOption(SocketOptionLevel.S ocket, SocketOptionName.ReceiveTimeout, 3000); 30 • Ví dụ TimeoutUdpClient 31 Bắt ngoại lệ • Ta biết dùng socket time-out tạo ngoại lệ • Vì phải bắt ngoại lệ • Ví dụ ExceptionUdpClient 32 Xử lý vấn đề truyền lại liệu • Để cài đặt chế truyền lại liệu ta cần thực bước sau: – – – – – Send a message to a remote host Wait for an answer from the remote host If an answer is received, accept it and exit the method with the received data and the size of the data If no answer is received within a time-out value, increment a retry value Check the retry value If it is less than the number of retries desired, go to step and start over If it is equal, abort the retransmission attempt and report the results to the customer 33 • Ví dụ phương thức truyền lại liệu • SndRcvData() 34 Sử dụng phương thức chương trình • Ví dụ RetryUdpClient.cs 35 Xây dựng ứng dụng UDP hồn chỉnh 36 • Ví dụ BestUdpClient.cs 37 ... customer 33 • Ví dụ phương thức truyền lại liệu • SndRcvData() 34 Sử dụng phương thức chương trình • Ví dụ RetryUdpClient.cs 35 Xây dựng ứng dụng UDP hồn chỉnh 36 • Ví dụ BestUdpClient.cs 37 ... đồng với thiết lập giá trị time-out 28 Sử dụng Socket time-out • Hàm ReceiveFrom() hàm blocking, có nghĩa gọi đến hàm đứng chương trình hàm nhận liệu • Nếu lý mà liệu khơng đến chương trình bị treo... lục chương Mơ hình socket khơng hướng kết nối Một chương trình UDP đơn gian Phân biệt thông điệp UDP Xử lý số vấn đề lập trình khơng hướng kết nối Một ứng dụng UDP hồn chỉnh Mơ hình Client-Server

Ngày đăng: 11/04/2021, 22:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan