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 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
33
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 12C#
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 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 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 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
For PowerPoint and
Google Slides