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 1CÁ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 21
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 44
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 5net
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 66
Trang 7C++
Trang 8Khá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 99
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 1010
- 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 1111
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 123C#
Trang 131 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 1414
− 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 17JAVA
Trang 1818
- 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 1919
** 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 2020
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 23NHẬN XÉT
Trang 24Mã 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 25Có 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 26Phá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 27Sự 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 28Free 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