Giới thiệu vé Socket

Một phần của tài liệu Đồ án môn học lập trình hệ thống Đề tài implement and demo for sockets in ipc (Trang 25 - 38)

1.2.1 Khai niém Socket

Ô cắm là một điểm cuối của liên kết giao tiếp hai chiều giữa hai chương trình đang chạy trên mạng. Cơ chế socket cung cấp phương tiện giao tiếp giữa các quá trình (IPC) bang cách thiết lập các điểm liên hệ được đặt tên mà gitra dé qua trinh giao tiếp diễn ra.

Computer Computer

] 2

Process Network Process

] 2

Hinh 1.2 Socket in IPC

1.22 Phân loại Socket

Ô cắm gói tuần tự: Loại ỗ cắm này cung cấp kết nối đáng tin cậy cho các gói dữ liệu có độ dài tối đa cô định. Kết nối nảy là hai chiều cũng như theo trình tự.

Ô cắm gói dữ liệu: Luéng tin nhắn hai chiều được hỗ trợ bởi ô cắm gói dữ liệu.

Người nhận trong ô cắm datapram có thể nhận tin nhắn theo thứ tự khác với thứ tự chúng được gửi. Hoạt động của ô cắm datagram tuong tự như hoạt động chuyến thư từ nguồn tới đích thông qua thư.

ệ cắm luồng: ệ cắm luồng hoạt động giống như một cuộc trũ chuyện qua điện thoại và cung cấp luồng đữ liệu hai chiều và đáng tin cậy không có ranh giới bản ghi. Luồng dữ liệu này cũng được sắp xếp theo trình tự và không trùng lặp.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 5

® Ô cắm thô: Các giao thức truyền thông cơ bản có thê được truy cập bằng cách sử dung 6 cam thô.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 6

1.2.3 Cach hoat động của Socket

¢ Tao mét O cam: Dé thiét lap giao tiếp giữa các tiến trình, trước tiên ban can tao mét 6 cắm trong mỗi tiến trình. Trong nhiều ngôn ngữ lập trình, bạn có thế sử dung thu viện hoặc API để tạo và quản lý ổ cắm.

e Liên kết và lắng nghe (Phía máy chủ): Nếu một quy trình hoạt động như một máy chủ, thì nó cần liên kết ô cắm với một địa chỉ IP và số công cụ thể. Sau đó nó lắng nghe các kết nói đến.

se Kết nối (Phía máy khách): Nếu một quy trình khác hoạt động như một máy khách, nó

cần kết nối với địa chỉ IP và số công của máy chủ bằng các chức năng như connect().

e Chấp nhận kết nối (Phía máy chủ): Khi máy khách cố gắng kết nối, máy chủ sẽ chấp nhận yêu cầu kết nối bằng các chức năng như Accept(). Điều này tao ra mét 6 cam

mới dành riêng cho máy khách đó đê liên lạc.

° Truyền dữ liệu: Sau khi kết nối được thiết lập, dữ liệu có thé duoc truyén gitra cac tién trình bằng cách sử dụng các hàm như write() va read() cho cac 6 cam dinh hướng luồng

¢ Dong socket: Sau khi giao tiếp hoàn tất hoặc khi các tiến trình không còn cần socket nữa, chúng nên đóng nó bằng hàm close() hoặc hàm tương đương trong ngôn ngữ lập trình.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 6

Server Client

Accept() Connect()

Receive() Send()

Close()

HH

Hinh 1.3 Cach hoạt động của Socket

1.2.4 Loiich cia viéc sir dung Socket trong IPC

e Giao tiép da nén tang: Socket la mét giao dién chuẩn được hỗ trợ trên nhiều nền tảng và hệ điều hành khác nhau. Điều này cho phép việc phát triển ứng dụng IPC trên các hệ thống và nền tảng khác nhau một cách dễ dàng. Các socket API cung cập các hàm chuân đề tạo, kết nôi, truyền và nhận đữ liệu s1ữa các tiên trình.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 7

e - Giao tiếp qua mạng: Socket cho phép IPC không chỉ xảy ra trong cùng một máy tính, mà còn qua mạng. Điều này cho phép truyền dữ liệu giữa các tiến trình trên các máy tính khác nhau trong mạng LAN hoặc WAN. Với Socket, việc xây dựng ứng dụng mạng phân tán và giao tiếp giữa các máy tính trở nên dễ dàng.

¢ - Hỗ trợ giao thức đáng tin cậy: Socket hỗ trợ các giao thức đáng tin cậy như TCP (Transmission Control Protocol). Các giao thức này đảm bảo tính nhất quán và đáng tin cậy trong việc truyền đữ liệu. Điều này đảm bảo rằng đữ liệu được chính xác và không bị mắt hoặc trùng lặp trong quá trình truyền.

e - Đa luồng và đa tiến trình: Sử dụng Socket cho phép giao tiếp giữa các tiến trình đa luồng hoặc đa tiến trình. Mỗi tiến trình có thể tạo một socket riêne và truyền dữ liệu qua socket đó. Điều này giúp tăng tính linh hoạt và khả năng mở rộng của các ứng dụng IPC.

® - Tính mở rộng và tương thích: Socket cho phép xây dựng các ứng dụng IPC có tính mở rộng và tương thích. Các tiến trình có thê được triển khai trên các máy tính khác nhau vả giao tiếp với nhau thông qua socket. Điều này giúp tách biệt và tái sử dụng các thành phần của ứng dụng IPC.

e - Đơn giản và linh hoạt: Socket cung cấp một giao diện đơn giản và linh hoạt cho việc giao tiếp giữa các tiến trình. Các ứng dụng IPC có thể sử dụng các hàm chuân để tạo, kết nối và truyền dữ liệu qua socket một cách đễ dàng. Socket cũng cho phép tuỳ chỉnh và cấu hình các tham số để đáp ứng các yêu cầu cụ thể của ứng dụng.

e _ Tông thê, việc sử dụng Socket trong IPC mang lại lợi ích về đa nền tảng, giao tiếp qua mạng, hỗ trợ giao thức đáng tin cậy, đa luỗng và đa tiến trình, tính mở rộng và tương thích, tính mở rộng và linh hoạt cho các ting dung IPC.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC

1.3. Tông quan về công nghệ chính 1.3.1 Oracle VM VirtualBox

87 VirtualBox

Hinh 1.4 Oracle VM VirtualBox

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 8

Oracle VM VirtualBox 1a mét nén tang ing dung mã nguồn mở và miễn phí, cho phép tao, quản lý và chạy máy ao (VMs). May ao la nhimg may tinh có các phần cứng được mô phỏng bởi máy tính chủ.

Oracle VM VirtualBox cho phép ban thiét lập một hoặc nhiều máy ảo (VM|) trên một máy tínhvật lý và sử dụng chúng đồng thời cùng với máy tính vật lý thật. Mỗi máy ảo có thế cài đặt vàthực thi hệ điều hành riêng của mình, bao gồm các phiên ban Microsoft Window, Linux, BSDva MS-DOS. Ban có thê cài đặt và chay bao nhiéu may ao ban thich ciing dugc, han ché duynhat la dung long 6 cig va b6 nhé RAM.

Lich sw VirtualBox:

VirtualBox lan đầu tiên được cung cấp bởi Innotek GmbH từ Weinstadt, Đức, theogiấy phép phần mềm độc quyên, cung cấp một phiên bản sản phẩm miễn phí cho sử dụng cánhân hoặc đánh giá, theo Giấy phép Đánh giá và Sử dụng Cá nhân VirtualBox (PUEL). Vàotháng 1 năm 2007, dựa trên tư vấn của LiSoG, Innotek GmbH đã phát hành VirtualBox OpenSource Edition (OSE) dưới dạng phần mềm miền phí và nguôn mở.

Sun microsystems mua lại Innotek vào năm 2008. Tập đoàn Oracle đã mua lai Sunvao năm 2010 và đồi tên thương hiệu cho sản pham la “Oracle VM VirtualBox”.

Tinh nang VirtualBox:

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 9

9 Oracle VM VirtualBox Manager [Te ccs)

II = a

Da Add

“. Prewex

NeLwork

r1: Intel PRO/1000 MT Desktop (NAT USB

TC MT.

LẺ di <)

3 pescription

Hình 1.5 Giao dién Oracle VM VirtualBox

+ Tạo máy ảo: VirtualBox cho phép người dùng tạo các máy ảo với các thông số tùy chỉnh như kích thước bộ nhớ, số lượng CPU, dung lượng ô cứng, card mạng và nhiều hơn nữa. Người dùng co thé tao may ảo từ đầu hoặc sử dụng các hình ảnh máy ảo có

san.

+ Chay nhiéu hé diéu hanh: VirtualBox hé tro chay nhiéu hé diéu hanh khac nhau trén cùng một máy tính vật lý. Người dùng có thế cai dat va chay Windows, Linux, macOS và các hệ điêu hành khác trong các máy ảo riêng biệt trên cùng một máy tinh.

+ Giao tiếp giữa máy chủ và máy ảo: VirtualBox cung cập các cơ chê đề giao tiếp sIiữa mỏy chủ và cỏc mỏy ảo. Người dựng cú thờ chia sẻ tập tin và thư mục ứ1ữa mỏy chủ và máy ảo, thực hiện truyền đữ liệu qua cong USB, chia sé clipboard và kết nôi mạng giữa các máy ảo và máy chủ.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 9 + Snapshots: VirtualBox cho phép nguo1 dung tao va quan ly cac snapshots (ảnh chụp) của máy ao. Snapshots cho phép lưu trạng thái hiện tại của máy ảo va sau do

khôi phục lại từ trạng thái đã lưu. Điều này rất hữu ích khi người dùng muốn thử

nghiệm các cải đặt mới hoặc khôi phục lại trạng thái trước đó của mây ảo.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 10

+ Mạng ảo: VirtualBox cung cấp các tùy chọn mạng ảo đề mô phóng mạng trong các máy ảo. Người dùng có thê thiết lập mạng riêng cho máy ảo, kết nỗi máy ảo với mạng bên ngoài thông qua chế độ mạng NAT hoặc cầu nối mạng (bridged networking).

+ Điều khiến từ xa: VirtualBox hỗ trợ điều khiển máy ảo tử xa thông qua giao thức RDP (Remote Desktop Protocol). Điều này cho phép người dùng truy cập và điều khiến máy ảo từ xa từ một máy tính khác trên cùng một mạng hoặc qua internet.

+ Hỗ trợ mở rộng: VirtualBox cho phép người dùng cài đặt các tiện ích mở rộng (extension pack) đê mở rộng tính năng của phần mềm. Các tiện ích mở rộng bao gồm

hỗ trợ USB 2.0 và USB 3.0, hỗ trợ ảnh chụp màn hình, tích hợp dữ liệu chéo giữa máy chủ và máy ảo, và nhiều tính năng khác.

+ VirtualBox cung cấp một môi trường ảo hóa mạnh mẽ và linh hoạt, cho phép người dùng tạo vả quản lý các máy ảo một cách dễ dàng. Tính năng của VirtualBox giúp tăng tính linh hoạt,đảm bảo tách biệt và an toàn giữa các máy ảo và máy chủ, và cung cấp các công cụ quản lý và tùy chỉnh linh hoạt để đáp ứng nhu cầu sử đụng đa đạng của người dung.

+ Chia sẻ tệp tin và thư mục: Bạn có thé chia sé tệp tin và thư mục giữa máy chủ và máy ảo. Điều này giúp truyền đữ liệu dễ dàng và tiện lợi giữa hai môi trường.

+ Hỗ trợ USB: VirtualBox hỗ trợ chia sẻ các thiết bị USB gitra may chu va may ảo.

Điều này cho phép bạn sử dụng các thiết bi USB trong may ao nhw 6 dia, may in, USB dongle va nhiéu thiét bi khac.

+ Các tiện ích mở rộng: VưrtualBox cho phép bạn cài đặt các tiện ích mở rộng (extension pack) đê mở rộng tính năng của phần mềm. Các tiện ích mở rộng bao gồm hỗ trợ USB 2.0 và 3.0, tích hợp dữ liệu chéo giữa máy chủ và máy ảo, hỗ trợ mạng PXE (Preboot Execution Environment) và nhiều tính năng khác.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 11

1.3.2 Ngôn ngữ lập trinh C

Hinh 1.6 Ngôn ngữ lập trình C

Ngôn ngữ C được gọi là “ngôn ngữ mẹ” của ngành TT, bởi chúng được sử dụng như cơ sở, nền tảng chính dành cho những ngôn ngữ khác như: C++, C# & Java. Do do, khí học nhuần nhuyễn ngôn ngữ này thì việc chính phục những ngôn ngữ còn lại sẽ dễ dàng hơn rất nhiễu.

Ngôn ngữ lập trình C được sử dụng để viết ra những ngôn ngữ lập trình khác như:

JVMs,Kernels, C++, C#,... nhằm cung cấp chính xác các khái niệm cốt lõi, xử lý tập tin,... cực kỳ9 tốt. Đồng thời ngôn ngữ lập trình C còn có khả năng tạo ra hệ điều

hành, các thiết bị phần cứng, hạt nhân, trình điều khiến,... trên máy tính - thiết bị điện

tử vô cùng linh hoạt.

lại sao nên sử dụng ngôn ngữ (` 2

Hiệu suõt cao: C là một ngụn nứữ sõn với ngụn ngữ mỏy và cho phộp kiờm soỏt chớnh xác về cách dữ liệu và mã được xử lý. Điêu nay giup tôi ưu hóa hiệu suất của chương, trình và cho phép viết mã thực thí nhanh vả hiệu quả.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 11

Gần gũi với phần cứng: C cho phép truy cập trực tiếp vào phần cứng của máy tính, bao gồm bộ nhớ, thanh ghi và các thiết bị ngoại vị. Điều này làm cho C trở thành một ngôn ngữ phát triển phần cứng mạnh mẽ và phố biến, được sử dụng rộng rãi trong việc phát triển hệ điều hành, trình điều khiên và các ứng dụng nhúng.

Đa năng: C là một ngôn ngữ linh hoạt và có thể được sử dụng dé phat trién nhiéu loai ứng dụng khác nhau. Từ viết phần mềm hệ thống đến ứng dụng di động, game, trình

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 12

biên dịch, máy tính khoa học và nhiều lĩnh vực khác, C đáp ứng được nhiễu yêu cầu phát triển khác nhau.

Tiêu chuân hóa: C là một ngôn ngữ tiêu chuẩn được định nghĩa bởi tiêu chuân ISO và ANSI. Điều này đảm bảo tính tương thích và di động của mã nguôồn C trên nhiều nền tảng và trình biên dịch. Sự tiêu chuân hóa cũng đảm bảo rằng kiến thức và kỹ năng C của bạn có giá trị lâu dài và có thê được áp dụng vào nhiêu dự án khác nhau.

Hệ sinh thái phong phú: Có rất nhiều thư viện và công cụ hỗ trợ cho ngôn ngữ C, từ các thư viện chuẩn như C Standard Library đến các thư viện bên thứ ba như OpenGL, SDL, và OpenSSL. Hệ sinh thái phong phú nảy giúp người lập trình dé dàng phát triển ứng dụng phức tạp mà không cần viết lại các chức năng cơ bản.

Học tập và hiểu nguyên lý cơ bản: C là một ngôn ngữ gần gũi với nguyên lý cơ bản của lập trình. Nắm vững C giúp bạn hiểu rõ hơn về cách máy tính hoạt động, quy trình

biên dịch, quản lý bộ nhớ và nhiều khái niệm cốt lõi khác. Điều này làm cho C trở

thành một ngôn ngữ tuyệt vời đề học lập trình và xây dựng nền tảng cho việc nghiên cứu và phát triển các ngôn ngữ lập trình khác.

Vit Thai An-Lé Thi Kim Anh-Lé Van Bảo-Phạm Như Quốc Bảo

Topic: Implement and Demo for Sockets in IPC 13

Một phần của tài liệu Đồ án môn học lập trình hệ thống Đề tài implement and demo for sockets in ipc (Trang 25 - 38)

Tải bản đầy đủ (PDF)

(46 trang)