1. Trang chủ
  2. » Giáo Dục - Đào Tạo

CÁC nội DUNG THỰC HIỆN lập TRÌNH QUA các NGÔN NGỮ THÔNG DỤNG

28 1 0

Đ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

Thông tin cơ bản

Tiêu đề Các Nội Dung Thực Hiện Lập Trình Qua Các Ngôn Ngữ Thông Dụng
Tác giả Trịnh Thị Hương, Nguyễn Thu Dịu, Dương Duy Long, Nguyễn Đức Tùng, Lâm Nguyễn Khắc Giang, Đồng Văn Ngữ
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Hà Nội
Chuyên ngành Lập Trình Mạng
Thể loại Báo cáo thực tập
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 28
Dung lượng 1,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

net5 IPEndPoint: Đóng gói một địa chỉ socket – Khởi tạo: IPEndPointIPAddress, Int32 – Lấy dạng chuỗi: IPEndPoint.ToString; • DNS: thực hiện phân giải tên miền – Lấy địa chỉ IP: IPAdd

Trang 1

CÁC NỘI DUNG THỰC HIỆN

LẬP TRÌNH QUA CÁC NGÔN

NGỮ THÔNG DỤNG

Trịnh Thị HươngNguyễn Thu DịuDương Duy LongNguyễn Đức Tùng LâmNguyễn Khắc GiangĐồng Văn Ngữ

NHÓM 4

Trang 2

1

net

Trang 3

▰ NET SOCKET

▰ NET Framework là bộ thư viện chạy trên

đa kiến trúc của Microsoft

▰ • Hai namespace hỗ trợ lập trình mạng:

System.Net và System.Net.Sockets

33

Trang 4

4

Một vài lớp chính:

– IPAddress: Lưu trữ và quản lý địa chỉ IP

– IPEndPoint: Lưu trữ thông tin về một địa chỉ socket, tương tự như SOCKADDR_IN

Bao gồm IPAddress và cổng

– DNS: Hỗ trợ các thao tác phân giải tên miền

– Socket: Xử lý các thao tác trên socket

IPAddress: Đóng gói một địa chỉ IP

– Khởi tạo: IPAddress.Parse(“192.168.1.1”);

– Lấy dạng chuỗi: IPAddress.ToString();

– Các địa chỉ đặc biệt: IPAddress.Any, IPAddress.Broadcast, IPAddress.Loopback

Trang 5

net

5

IPEndPoint: Đóng gói một địa chỉ socket

– Khởi tạo: IPEndPoint(IPAddress, Int32)

– Lấy dạng chuỗi: IPEndPoint.ToString();

• DNS: thực hiện phân giải tên miền

– Lấy địa chỉ IP: IPAddress[] DNS.GetHostAddress(“www.google.com”);

– Lấy thông tin về host: IPHostEntry DNS.GetHostEntry(“www.google.com”)

Phương thức sau sẽ được dùng để khởi tạo một socket trên NET

Socket(AddressFamily af, SocketType st, ProtocolType pt) Trong đó các tham số

thường được sử dụng kèm với nhau như sau:

Trang 6

6

Trang 7

C++

Trang 8

Khái niệm về Socket :

Socket là thiết bị truуền thông hai chiều có

thể gửi ᴠà nhận dữ liệu từ máу khác.

Lập trình ѕocket c++ cho phép thành lập

nên các kênh giao tiếp mà hai đầu kênh được

đánh dấu bởi hai cổng TCPIP ᴠà UDP

Có 2 loại ѕocket : Socket có hướng kết nối

(TCP) ᴠà Socket không hướng kết nối (UDP).

Trang 9

9

Socket có hướng kết nối:

Việc truуền dữ liệu ѕẽ được thiết lập kết nối giữa 2 tiến trình ᴠới

nhau Việc nàу đảm bảo dữ liệu được truуền đến nơi nhận một cách

chính хác, đúng địa chỉ ᴠà thứ tự nhất.

Socket không hướng kết nối:

Nó hoạt động dựa trên giao thức UDP, là giao thức hướng thông

điệp Việc truуền dữ liệu không уêu cầu có ѕự thiết lập kết nối giữa các

quá trình ᴠới nhau.

Ngược lại ᴠới giao thức TCP thì dữ liệu được truуền theo giao thức

UDP không được tin cậу, có thế không đúng trình tự ᴠà lặp lại.

Trang 10

10

- Socket chính là điểm cuối (được gọi là end point) của một liên kết truyền thông 2 chiều

giữa 2 chương trình chạy trên môi trường mạng internet Chúng được dùng để thể

hiện kết nối giữa máy chủ với client và bị ràng buộc nhau bởi một cổng Port, nhằm

mục đích để các tầng TCP (viết tắt của Transmission Control Protocol) thực hiện chức

năng định danh ứng dụng các dữ liệu được gửi đến

- Socket giúp lập trình viên kết nối các ứng dụng để truyền và nhận thông tin dữ liệu

thông qua mạng Internet bằng 2 phương thức là TCPIP và UDP

- Phân loại Socket Socket có 4 loại khác nhau :

Stream Socket

Datagram Socket

Websocket

Unix socket

Trang 11

11

Hoạt động của Socket server là gì?

Về bản chất, hoạt động của Socket là kết nối

client với máy chủ bằng TCP/IP hay UDP để thực

hiện việc truyền tải và nhận dữ liệu qua môi trường

internet Do đó, Socket chỉ có thể hoạt động được

khi có đủ các thông tin thông số IP, số hiệu Port

của 2 ứng dụng muốn trao đổi dữ liệu Ngoài ra, 2

ứng dụng muốn truyền tải dữ liệu cho nhau cần

phải đáp ứng điều kiện là chúng cùng nằm trên

một máy tính hoặc cũng có thể ở 2 máy khác

nhau Đối với trường hợp cùng nằm trên một máy

thì số hiệu cổng bắt buộc phải khác nhau

Trang 12

C#

Trang 13

1 C Sharp socket có hai phần :

+ C# Server Socket Program

+ C# Client Socket Program

2 Server Socket Program

- Chương trình Server Socket ở đây là ứng dụng dựa trên C# Console

Chương trình này hoạt động như một Máy chủ và lắng nghe yêu cầu

của khách hàng VD : chỉ định một Cổng số 8888 cho Ổ cắm Máy chủ

và gọi phương pháp start () của nó

Trang 15

- Chương trình C# Client Socket là một ứng dụng dựa trên Windows Máy khách được kết nối

với Cổng 8888 của C# Server Socket Program và Địa chỉ IP (Tên máy tính) VD là 127.0.0.1 ,

Máy chủ và Máy khách chạy trên cùng một máy

- Khi chương trình C # Client bắt đầu, nó sẽ kết nối với Chương trình Ổ cắm máy chủ C # và bắt

đầu đọc dữ liệu từ NetworkStream , và cũng ghi vào NetworkStream Khi bắt đầu chương

trình máy khách, ta sẽ nhận được một tin nhắn từ Máy chủ "client started" Khi nhấn nút ở cuối

Client window, nó sẽ gửi tin nhắn đến Máy chủ và cũng nhận được phản hồi từ Máy chủ

Trang 17

JAVA

Trang 18

18

- Các Socket cung cấp kỹ thuật giao

tiếp giữa hai máy tính sử dụng TCP

Một chương trình Client tạo một

socket trên đầu cuối của giao tiếp

và cố gắng để kết nối socket đó tới

một Server.

- Khi kết nối được tạo, Server tạo

một đối tượng Socket trên đầu cuối

của giao tiếp Client và Server bây

giờ có thể giao tiếp bằng việc đọc

và ghi từ Socket.

Trang 19

19

** Các bước sau xảy ra khi thành lập một kết nối TCP giữa hai máy tính sử dụng Socket:

 Server khởi tạo một đối tượng ServerSocket, biểu thị số hiệu cổng (port) nào để xuất hiện giao tiếp.

 Server gọi phương thức accept() của lớp ServerSocket Phương thức này đợi tới khi một Client kết nối với Server trên cổng đã cho.

 Sau khi Server đang đợi, một Client khởi tạo một đối tượng Socket, xác định tên Server và số hiệu cổng để kết nối tới.

 Constructor của lớp Socket cố gắng để kết nối Client tới Server và số hiệu cổng đã xác định Nếu giao tiếp được thành lập, bây giờ Client có một đối tượng Socket có khả năng giao tiếp với Server.

 Trên Server-side, phương thức accept() trả về một tham chiếu tới một socket mới trên Server mà được kết nối với socket của Client.

Trang 20

20

 Sau khi các kết nối được thành lập, giao tiếp có thể xảy ra bởi sử dụng I/O

stream Mỗi Socket có cả một OutputStream và InputStream OutputStream

của Client được kết nối với InputStream của Server, và InputStream của Client

được kết nối với OutputStream của Server.

 TCP là một giao thức giao tiếp hai chiều, vì thế dữ liệu có thể được gửi qua cả

hai luồng tại cùng một thời điểm

Lớp java.net.Socket biểu diễn một Socket, và lớp java.net.ServerSocket cung

cấp một kỹ thuật cho chương trình Server để nghe thông tin từ các Client và thành

lập các kết nối với chúng.

Trang 22

với nhau Client thu nhận

một đối tượng Socket bằng

việc khởi tạo nó, trong khi

Server thu nhận một đối

tượng Socket từ giá trị trả về

của phương thức accept()

Lớp Socket có 5 constructor

mà một Client sử dụng để

kết nối tới một Server:

Trang 23

NHẬN XÉT

Trang 24

Mã nguồn rõ ràng, trong NET 2.0, mã nguồn tách biệt với giao diện HTML.

Visual Studio có thể sinh mã, tiết kiệm thời gian viết code

Có thể dùng C#, VB hoặc Managed C++

Nhược điểm:

Không thể chạy trên Linux

Nếu ko có Visual Studio thì khó viết code

Trang 25

Có tính bảo mật và hiệu quả cao

Cho phép can thiệp và điều khiển phần cứng và có thể chạy trên bất kỳ nền tảng nào đồng thời tận

dụng tối đa tài nguyên phần cứng mà nó chạy trên đó

Tốc độ nhanh và mượt ngay cả những hệ thống đòi hỏi hiệu suất cao

Nhược điểm:

Sử dụng Pointers khá phức tạp và tốn nhiều tài nguyên bộ nhớ Sử dụng sai sẽ khiến chương trình bị

lỗi hoặc thực thi không đúng

Một số vấn đề bảo mật vẫn còn tồn tại do các điểm yếu của pointers, hàm Friend, biến toàn cục

Không có tính năng Thu gom rác (Garbage Collection) để tự động loại bỏ các dữ liệu không cần thiết

Trang 26

Phát triển nhanh hơn và có khả năng ít lỗi hơn so với c ++ hoặc java (bạn có các loại không dấu, bạn có ref / out, bạn có

thể tạo các loại giá trị của riêng mình, bạn có những thứ hữu ích khác mà java bỏ qua có nghĩa là bạn ít nhảy qua vòng có

nghĩa là độ phức tạp mã ít cần thiết hơn).

Tất cả mọi thứ được truyền bằng tham chiếu ngoại trừ các loại giá trị, theo mặc định

Dễ dàng tạo nhiều chủ đề Có nhiều phương tiện tạm dừng các luồng để chờ tín hiệu và như vậy

Bạn có thể tạo các loại giá trị, theo mặc định là truyền theo giá trị thay vì truyền bằng tham chiếu, bằng cách tạo cấu trúc

thay vì một lớp.

Nhược điểm:

Sử dụng nhiều bộ nhớ hơn c ++

Trình thu gom rác sử dụng chu kỳ và bộ nhớ CPU

Một số thứ không hoạt động trong các chức năng gọi đơn trong một số cửa sổ sẽ không tồn tại trên linux, việc triển khai

các biểu mẫu đơn của windows cần có cách giải quyết trong mã

Phương thức gọi thông qua các đại biểu chậm hơn đáng kể so với cách gọi phương thức bình thường

Trang 27

Sự phong phú của các thư viện nguồn mở

Phân bổ bộ nhớ tự động và tự thu gom rác

Theo mô hình OOP

Trang 28

Free templates for all your presentation needs

Ready to use, professional and customizable

100% free for personal or

For PowerPoint and

Google Slides

Ngày đăng: 25/12/2022, 05:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w