STDIO
Tìm kiếm gần đây
    • Nội dung
    • QR Code
    • 0
    • 0
    • Sao chép

    Thuật Ngữ Server và Thuật Ngữ Client

    Khái niệm Server và Client mở rộng không chỉ nhằm hiểu về Server và Client trong lĩnh vực máy tính. Đây là 2 khái niệm dùng để đề cập thành phần cung cấp và thành phần thụ hưởng.
    02/05/2014
    09/09/2020
    3 phút đọc
    Thuật Ngữ Server và Thuật Ngữ Client

    Bài viết giới thiệu 2 khái niệm Server và Client trong lập trình. Ngoài ra 2 khái niệm này cũng là khái niệm chung cho các lĩnh vực khác và có ý nghĩa tương tự.

    Ngữ nghĩa của Server và Client

    Từ tiếng Anh dịch sang tiếng Việt có thể hiểu:

    • Server là 1 thành phần cung cấp dịch vụ.
    • Client thừa hưởng các dịch vụ này.

    Server và Client đề cập trong bài này

    Khi nhận được 1 yêu cầu thì thành phần yêu cầu sẽ là Client. Trong lập trình 1 hàm cần sử dụng 1 hàm khác như yêu cầu 1 hàm trả về tổng của 2 số nguyên:

    #include <iostream>
    
    void sum(int a, int b)
    {
        int c = a + b;
        std::cout << c;
    }
    
    /*
    int main()
    {
        sum(5, 10);
    }
    */
    

    Yêu cầu hàm cần tính tổng 2 số, khi sử dụng hàm không nhận được kết quả này, sum(int, int) là 1 "server" nhưng cung cấp dịch vụ chưa ổn do không trả về kết quả, Client trong trường hợp này là nơi gọi hàm sum(int, int) trong hàm main() không lấy được kết quả từ hàm sum().

    Đoạn code trên nên được điều chỉnh lại để server cung cấp dịch vụ đúng đắn hơn:

    int sum(int a, int b)
    {
        int c = a + b;
        return c;
    }
    

    Các ví dụ khác về server và client

    Trong lập trình hướng đối tượng, xét ví dụ kế thừa kiểu public

    /* SERVER CODE */
    class Community
    {
    private:
    	int att1;
    
    protected:
    	int att2;
    
    public:
    	void Share()
    	{
    	
    	}
    };
    
    /* KẾ THỪA KIỂU PUBLIC */
    class Stdio: public Community
    {
    private:
    	int att3;
    
    public:
    	void ShareArticle()
    	{
    	
    	}
    };
    
    /* CLIENT CODE
    int main()
    {
    	Stdio obj;
    }
    */
    
    • class Community là server code của class Stdio.
    • class Stdio là server code của khai báo Stdio obj trong hàm main().

    Các số chẵn trong một mảng

    #include <iostream>
    
    void GetEvenIntegerList(int* integerList, int n)
    {
    	for (int i = 0; i < n; n++)
    	{
    		if (integerList[i] % 2 == 0)
    		{
    			std::cout << integerList[i];
    		}
    	}
    }
    

    Server code này đã không thỏa mãn lắm chức năng Server, các Client không thể sử dụng được dịch vụ này, cụ thể là không nhận được danh sách số chẵn như mong đợi. Cải tiến lại như sau:

    void GetEvenIntegersList(int* integerList, int n, int*& eIntegerList, int &m)
    {
    	// ĐẾM SỐ LƯỢNG SỐ CHẴN CÓ TRONG DANH SÁCH
    	m = 0;
    
    	for (int i = 0; i < n; i++)
    	{
    		if (integerList[i] % 2 == 0)
    		{
    			m++;
    		}
    	}
    
    	if (m == 0)
    		return;
    
    	// KHỞI TẠO MẢNG ĐỦ ĐỂ CHỨA LƯỢNG SỐ CHẴN ĐÃ ĐẾM
    	int* eIntegerList = new int[m];
    
    	int k = 0;
    	for (int i = 0; i < n; i++)
    	{
    		if (integerList[i] % 2 == 0)
    		{
    			eIntegerList[k++] = integerList[i];
    		}
    	}
    }
    

    Hiện thực đúng đắn một Server sẽ đòi hỏi nhiều kỹ năng hơn, lâu dài sẽ tạo nên một khả năng "đóng gói" sản phẩm, dịch vụ mà người dùng hoặc client nói riêng chỉ cần "plug-and-play". Không chỉ tiện lợi, tăng độ tin cậy cho sản phẩm mà còn tăng uy tín cho người hiện thực.

    0 Bình luận

    Đề xuất

    Dynamic Web Application với Eclipse Helios và Tomcat Server
    Hướng dẫn tạo ứng dụng web bằng IDE Eclipse Helios và Apache Tomcat Web ...
    09/09/2017
    Cyber Security - Khám Phá Thế Giới An Ninh Mạng và Ngôn Ngữ Lập Trình
    Tìm hiểu những ngôn ngữ lập trình hữu ích nhất dành cho mạng máy tính và ...

    Khám phá

    Rvalue References và Move Semantics
    Khái niệm rvalue reference, và ứng dụng để định nghĩa "move semantic" ...
    02/12/2014
    Điều Khiển Đèn LED trên Web bằng Raspberry Pi 4 và Node.js - Webserver với WebSocket
    Lập trình điều khiển bật tắt đèn LED trên website bằng Raspberry Pi 4 và ...
    Sơ Lược về Phong Cách Lập Trình
    Bài viết là một vài chia sẻ về cách hình thành phong cách lập trình để ...
    Phân Biệt HTTP và HTTPS
    Tìm hiểu sự khác nhau giữa HTTP và HTTPS.
    Cài Đặt Và Cấu Hình Microsoft SQL Server 2014 Express
    Cài đặt và cấu hình Microsoft SQL Server 2014 Express, tạo môi trường ...
    Làm Quen với SQL Server
    Giới thiệu SQL Server của Microsoft và hướng dẫn thao tác với dữ liệu ...
    30/07/2015
    Kỹ Thuật Grayscale và Nhị Phân Hoá Ảnh (Adaptive Threshold)
    Giới thiệu và chi tiết các thuật toán Grayscale, ảnh nhị phân và một số ...
    Chipmunk - Phần 2: Một Số Thuật Ngữ Và Khái Niệm
    Giới thiệu về một số thuật ngữ và khái niệm khác trong Chipmunk như cách ...
    Khi bạn nhấn vào liên kết sản phẩm do STDIO đề xuất và mua hàng, STDIO có thể nhận được hoa hồng. Điều này hỗ trợ STDIO tạo thêm nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    developer@stdio.vn

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020