bài 4 - giải thuật và các kỹ thuật cơ bản trong lập trình client

34 766 0
bài 4 - giải thuật và các kỹ thuật cơ bản trong lập trình client

Đ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 4- Giải thuật các kỹ thuật bản trong lập trình Client Chủ đề  Nắm được các bước (giải thuật) lập trình chương trình Client  Biết cách sử dụng các hàm Socket API trong lập trình Client  Thực hành lập trình một chương trình Client đơn giản Nội dung  4.1) Cấu trúc tổng quát chương trình Client  4.2) Giải thuật tổng quát chương trình Client  4.3) Cách gọi hàm Socket API trong từng bước 4.1 Cấu trúc chương trình Client  Về bản, client không yêu cầu mức ưu tiên cao trong hệ thống  Không yêu cầu nhiều tài nguyên không cần hoạt động liên tục Cấu trúc chương trình gồm 3 module  Module giao diện để tương tác với user  Module kết nối với server  Module thực thi giao thức trao đổi dữ liệu với server  Gửi bản tin yêu cầu đến Server  Nhận bản tin phản hồi từ Server xử lý Các chức năng hỗ trợ thực thi giao thức  Đọc phân tích cú pháp bản tin giao thức Client/Server  Xử lý dữ liệu trước khi gửi sau khi nhận  Thao tác với bộ đệm buffer chứa dữ liệu  Hiển thị trạng thái phiên làm việc  Thông báo xử lý lỗi gặp phải  Đọc/ghi dữ liệu từ tệp tin 4.2) Giải thuật chương trình client 5 bước Một Client nói chung cần thực hiện 5 bước sau  Bước 1) Xác định địa chỉ remote socket phía server  Bước 2) Tạo local socket tại client  Bước 3) Kết nối local socket với remote socket  Bước 4) Gửi/nhận/xử lý dữ liệu qua kết nối socket  Bước 5) Đóng kết nối Phân rã chức năng theo module  Bước 1 -> 3 được thực hiện bởi module kết nối socket  Bước 4 ->5 được thực hiện bởi module thực thi giao thức (module chính)  Bước 1  3 là thao tác chung đối với mọi Client  Bước 4 5 tùy theo từng giao thức ứng dụng như HTTP, FTP, POP3 hay SMTP Ví dụ minh họa: Chương trình EchoClient  Chức năng: kiểm tra phản hồi của server qua TCP/IP  Các công đoạn xây dựng chương trình gồm:  Các chức năng bổ trợ: truy vấn thông tin, thông báo lỗi  Lập trình module kết nối  Lập trình module tương tác với Server theo giao thức ứng dụng Echo  Lập chương trình chính Giao thức ECHO  Echo dùng để kiểm tra hoạt động của mạng của server  Client gửi đến Server 1 bản tin là một xâu kí tự bất kỳ  Server gửi trả lại một bản tin với nội dung hoàn toàn trùng với bản tin mà client gửi đến  Ví dụ:  Client gửi bản tin ”HELLO”  Server nhận được gửi lại “HELLO”  Client gửi “How are you?”  Server gửi lại “How are you?” [...]...Cách thức hoạt động  User chạy chương trình TCPEchoClient với tham số hàm main là tên server TCPEchoClient.exe  Nếu kết nối thành công, nhập bản tin là xâu kí tự từ bàn phím gửi bản tin đến server  Nhận bản tin phản hồi in ra màn hình  Đóng kết nối kết thúc nếu bản tin nhập vào là xâu rỗng Các tệp mã nguồn của project  socketbasic.cpp: Module chức năng khởi tạo giải. .. dữ liệu …  Khi lập trình mạng, cần chú ý kiểm tra kết quả gọi hàm SOCKET API để biết thao tác thực hiện thành công hay không  Nếu không kiểm tra mà vẫn tiếp tục các thao tác tiếp theo sẽ dẫn đến lỗi chương trình Bước 4: Client tương tác với Server  Client gửi bản tin yêu cầu bằng cách  Tạo nội dung bản tin đưa bản tin vào vùng đệm buffer (bộ nhớ)  Gọi hàm API send để gửi bản tin qua socket... đóng socket thì phía bên kia không nhận biết được sự kiện đó  UDP thích hợp cho các ứng dụng cần tốc độ mà không cần tin cậy liên kết chặt chẽ giữa Client Server Bài tập: Chương trình Client với socket UDP  Viết chương trình EchoUDPClient  Sử dụng socket UDP  Tương tác với server: gửi bản tin qua socket nhận bản tin phản hồi ... lỗi chương trình khi gọi hàm recv nhiều lần Bước 5: Đóng kết nối  Sau khi kết thúc gửi/nhận các bản, client thể đóng kết nối  Gọi hàm API closesocket closesocket(s) Bài tập  Bài 1: Biết tên web server của ĐHXD là www.nuce.edu.vn, hãy viết một chương trình truy vấn địa chỉ IP của server trên  Bài 2: Viết 1 chương trình Client kết nối đến cổng 80 của server www.nuce.edu.vn sau đó  Gửi bản tin “GET... HTTP/1.1\r\n\r\n”, nhận phản hồi in ra màn hình  Gửi bản tin “GET /administrator HTTP/1.1\r\n”, nhận bản tin phản hồi in ra màn hình Tiếp  Bài 3: Tạo giao diện command line cho chương trình EchoTCPClient, sử dụng các chức năng qua lệnh:  Kết nối đến server: lệnh connect, tham số là tên hoặc địa chỉ IP của server  Gửi bản tin: lệnh msg, tham số là nội dung bản tin trên 1 dòng  Đóng kết nối:...  Ưu điểm: giúp chương trình client linh hoạt hơn trong gửi/ nhận dữ liệu với nhiều Server  Client thể dùng một local socket để gửi dữ liệu cho nhiều remote socket Chú ý  Khi gọi hàm connect() với UDP socket, hàm không báo lỗi nhưng không bảo đảm chắc chắn sẽ liên lạc được với server Cách truyền nhận  Khác với TCP, UDP socket truyền trọn vẹn một bản tin (datagram) trong một lần gọi hàm send... connect.cpp : chức năng kết nối đến server  echoclient.cpp: chức năng trao đổi các bản tin theo giao thức Echo Bước 1: Xác định địa chỉ socket phía Server Client Server transport network interface transport network interface Internet Xác định địa chỉ Socket của server ntn ? UDP TCP POP3 Địa chỉ Socket của tiến trình Server - Kiểu Socket (TCP hay UDP) - Cổng - Địa chỉ IP Địa chỉ của remote socket phía Server... lớn thì phía nhận cũng sẽ nhận trọn vẹn bản tin đó trong 1 lần gọi hàm recv hoặc recvfrom  Chú ý : nếu kích thước vùng đệm < kích thước bản tin thi các byte dữ liệu còn lại sẽ bị bỏ qua (cách làm việc của UDP không tin cậy) Đóng socket  Đóng socket UDP là giải phóng tài nguyên gán cho socket đó  Do tính chất không liên kết của UDP, nếu một phía (ví dụ là Client) đóng socket thì phía bên kia không... Gửi bản tin: lệnh msg, tham số là nội dung bản tin trên 1 dòng  Đóng kết nối: lệnh close  Thoát khỏi chương trình: lệnh quit Đọc thêm: Client sử dụng UDP socket  Một chương trình client sử dụng UDP socket cũng bao gồm các bước tương tự  Điểm khác biệt: không liên kết giữa local socket remote socket phía server vì UDP là giao thức không hướng kết nối Kết nối UDP socket  Ý nghĩa của việc gọi... nhớ)  Gọi hàm API send để gửi bản tin qua socket int byte_send = send(s, buffer, msg_length, 0);  Client nhận bản tin phản hồi từ server  Chuẩn bị vùng đệm buffer sẽ nhận nội dung bản tin  Gọi hàm API recv để đọc dữ liệu từ socket vào buffer int byte_recv = recv(s, buffer, sizeof(buffer), 0); Hàm send recv  Nếu gửi dữ liệu thành công, hàm trả về số byte dữ liệu đã gửi  Ngược lại, hàm trả về giá . Bài 4- Giải thuật và các kỹ thuật cơ bản trong lập trình Client Chủ đề  Nắm được các bước (giải thuật) lập trình chương trình Client  Biết cách sử dụng các hàm Socket API trong lập trình. trình Client  Thực hành lập trình một chương trình Client đơn giản Nội dung  4. 1) Cấu trúc tổng quát chương trình Client  4. 2) Giải thuật tổng quát chương trình Client  4. 3) Cách. gọi hàm Socket API trong từng bước 4. 1 Cấu trúc chương trình Client  Về cơ bản, client không yêu cầu mức ưu tiên cao trong hệ thống  Không yêu cầu nhiều tài nguyên và không cần hoạt

Ngày đăng: 23/05/2014, 14:34

Từ khóa liên quan

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

Tài liệu liên quan