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 0 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ữ
Chuyên ngành Lập trình và Công nghệ Thông tin
Thể loại Tác phẩm báo cáo/tiểu luận
Định dạng
Số trang 28
Dung lượng 4,55 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: IPAddres

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

3

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

3C#

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 14

14

− Bước tiếp theo là tạo ra một vòng lặp vô hạn để

theo dõi yêu cầu từ phía Khách hàng Khi

Server Socket chấp nhận yêu cầu từ phía

Khách hàng, nó sẽ đọc dữ liệu từ

NetworkStream và cũng viết phản hồi cho

NetworkStream

− Mã ví dụ :

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 21

21

Các phương thức lớp ServerSocket trong

Java

- Lớp java.net.ServerSocket  trong Java được sử

dụng bởi các ứng dụng Server để thu nhận một cổng

và nghe các yêu cầu từ Client

- Lớp ServerSocket có 4 constructor sau:

 

Trang 22

22

Các phương thức lớp Socket trong Java

Lớp java.net.Socket biểu diễn socket mà cả

Client và Server sử dụng để kết nối 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 commercial

use

Blow your audience away with attractive visuals For PowerPoint and Google Slides

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

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

w