Bài giảng Lập trình mạng: Chương 3 - ThS. Trần Đắc Tốt
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình mạng: Chương 3 - ThS. Trần Đắc Tốt Chương 3 Lập trình Socket không hướng kết nối 1 Mục lục chương 1. Mô hình socket không hướng kết nối 2. Một chương trình UDP đơn gian 3. Phân biệt các thông điệp UDP 4. Xử lý một số vấn đề trong lập trình không hướng kết nối 5. Một ứng dụng UDP hoàn chỉnh 2 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 giữa client và server Đóng socket 3 Mô hình Client-Server không hướng kết nối 1. 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 - Quá trình truyền nhận dữ liệu - Đóng kết nối 2. Mô hình ứng dụng client – server không hướng kết nối 4 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 ra một Sockets - Gắn Sockets đó với một địa chỉ cụ thể (binding) Phía Client: - Tạo ra một Sockets - Quá trình truyền nhận dữ liệu - Đóng kết nối 5 Mô hình ứng dụng client – server không hướng kết nối 6 CÁC THAO TÁC PHÍA SERVER 1. Tạo một socket 2. Định danh cho socket (binding) 7 Tạo một socket • Sử dụng Sockettype. Dgram và ProtocolType.Udp khi 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); 8 Định danh cho socket • Việc này chỉ cần thực hiện đối với một máy, ta tạm gọi đó là máy chủ. Để định danh cho socket ta cũng 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); 9 CÁC THAO TÁC PHÍA CLIENT 1. Tạo ra một socket Việc tạo ra một socket ở phía client hoàn giống với phía server 10 QUÁ TRÌNH TRUYỀN, NHẬN DỮ LIỆU GIỮA CLIENT VÀ SERVER 1. Quá trình truyền dữ liệu 2. Quá trình nhận dữ liệu 11 Quá trình truyền dữ liệu • Để truyền dữ liệu ta sử dụng hàm sendto thay vì hàm send. • Nguyên mẫu của hàm sendto như sau: – SendTo(byte[] data, EndPoint Remote) – SendTo(byte[] data, SocketFlags Flags, EndPoint Remote) – SendTo(byte[data], int Size, SocketFlags Flags, EndPoint Remote) – SendTo(byte[] data, int Offset, int Size, SocketFlags Flags, EndPoint Remote) 12 Quá trình nhận dữ liệu • Để nhận dữ liệu ta sử dụng hàm ReceiveForm(). • Nguyên mẫu tương tự hàm SendTo() với một điểm khác là không có tham số EndPoint. • Dạng hàm cơ bản là: – ReceiveFrom(byte[] data, ref EndPoint Remote) 13 • Ví dụ về UDPServer 14 • Ví dụ về UDPCIient 15 Sử dụng Connect() trong UDP Client • Chúng ta có thể nhận thấy là ứng dụng UDP sử dụng SendTo() và ReceiveFrom() khá phức tạp • Lý do là vì ứng dụng UDP được xây dựng để có thể gửi và truyền dữ liệu đến bất kỳ máy nào • Nếu chỉ truyền và nhận dữ liệu đến một máy cụ thể, ta có thể sử dụng hàm Connect() 16 • Ví dụ về sử dụng hàm Connect() trong UDP. 17 Phân biệt các thông điệp UDP • Một trong những đặc điểm quan trọng của UDP là chúng bảo toàn ranh giới giữa các thông điệp • Tuy nhiên UDP server, sau khi được tạo ra, thì có thể nhận thông điệp từ nhiều UDP Client. • Vậy làm thể nào để UDP server phân biệt được các thông điệp đến từ các Client khác nhau? 18 • Ví dụ TestUdpSrvr 19 • Ví dụ TestUdpClient 20
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lập trình mạng Lập trình mạng Lập trình Socket không hướng kết nối Mô hình Client Định danh cho socket Quá trình truyền dữ liệuGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần: Mạng máy tính và lập trình mạng
4 trang 160 0 0 -
Báo cáo bài tập lớn môn Mạng máy tính và Lập trình mạng: Tìm hiểu về Soap
32 trang 136 0 0 -
349 trang 123 0 0
-
Bài giảng Lập trình mạng - Chương 1: Giới thiệu Lập trình mạng
18 trang 108 0 0 -
Giáo trình Lập trình mạng: Phần 1 - Trường Đại học Phan Thiết
78 trang 75 0 0 -
Giáo trình Lập trình mạng: Phần 1
54 trang 61 0 0 -
Giáo trình Lập trình mạng - ThS. Văn Thiên Hoàng
201 trang 56 0 0 -
17 trang 47 0 0
-
Tài liệu hệ thống phát hiện xâm nhập
14 trang 34 0 0 -
Bài giảng Lập trình mạng: Phần 1
75 trang 33 0 0 -
Bài giảng Lập trình mạng nâng cao ICMP protocol - Nguyễn Vũ
29 trang 29 0 0 -
Lecture Network programming - Chapter 1: Basic Network Concepts (Tran Thi Ha Trang)
28 trang 29 0 0 -
Bài giảng Lập trình mạng: Chương 1 - Trương Đình Huy
14 trang 26 0 0 -
Bài giảng Lập trình mạng: Chương 1 - Lê Bá Vui
53 trang 26 0 0 -
Chương 5 LẬP TRÌNH MẠNG VỚI Java
32 trang 26 0 0 -
Lecture Network programming: Socket API introduction
25 trang 26 0 0 -
12 trang 25 0 0
-
Bài giảng Lập trình mạng: Chương 7 - Phạm Trần Vũ
63 trang 25 0 0 -
Bài giảng Lập trình mạng: Chương 5 - Lê Bá Vui
51 trang 25 0 0 -
Bài giảng Lập trình mạng: Chương 1 - Lương Ánh Hoàng
17 trang 25 0 0