Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
4,55 MB
Nội dung
NHĨM 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ươ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ữ net “ ▰ NET SOCKET ▰ NET Framework thư viện chạy đa kiến trúc Microsoft ▰ • Hai namespace hỗ trợ lập trình mạng: System.Net System.Net.Sockets net Một vài lớp chính: – IPAddress: Lưu trữ quản lý địa IP – IPEndPoint: Lưu trữ thông tin địa socket, tương tự SOCKADDR_IN Bao gồm IPAddress cổng – DNS: Hỗ trợ thao tác phân giải tên miền – Socket: Xử lý thao tác socket IPAddress: Đóng gói địa IP – Khởi tạo: IPAddress.Parse(“192.168.1.1”); – Lấy dạng chuỗi: IPAddress.ToString(); – Các địa đặc biệt: IPAddress.Any, IPAddress.Broadcast, IPAddress.Loopback net IPEndPoint: Đóng gói địa socket – Khởi tạo: IPEndPoint(IPAddress, Int32) – Lấy dạng chuỗi: IPEndPoint.ToString(); • DNS: thực phân giải tên miền – Lấy địa IP: IPAddress[] DNS.GetHostAddress(“www.google.com”); – Lấy thông tin host: IPHostEntry DNS.GetHostEntry(“www.google.com”) Phương thức sau dùng để khởi tạo socket NET Socket(AddressFamily af, SocketType st, ProtocolType pt) Trong tham số thường sử dụng kèm với sau: C++ Khái niệm Socket : Socket thiết bị truуền thông hai chiều gửi ᴠà nhận liệu từ máу khác Lập trình ѕocket c++ cho phép thành lập nên kênh giao tiếp mà hai đầu kênh đánh dấu hai cổng TCPIP ᴠà UDP Có loại ѕocket : Socket có hướng kết nối (TCP) ᴠà Socket khơng hướng kết nối (UDP) C++ Socket có hướng kết nối: Việc truуền liệu ѕẽ thiết lập kết nối tiến trình ᴠới Việc nàу đảm bảo liệu truуền đến nơi nhận cách хác, địa ᴠà thứ tự Socket khơng hướng kết nối: Nó hoạt động dựa giao thức UDP, giao thức hướng thông điệp Việc truуền liệu khơng уêu cầu có ѕự thiết lập kết nối trình ᴠới Ngược lại ᴠới giao thức TCP liệu truуền theo giao thức UDP khơng tin cậу, khơng trình tự ᴠà lặp lại C++ - Socket điểm cuối (được gọi end point) liên kết truyền thơng chiều chương trình chạy môi trường mạng internet Chúng dùng để thể kết nối máy chủ với client bị ràng buộc cổng Port, nhằm mục đích để tầng TCP (viết tắt Transmission Control Protocol) thực chức định danh ứng dụng liệu gửi đến - Socket giúp lập trình viên kết nối ứng dụng để truyền nhận thông tin liệu thông qua mạng Internet phương thức TCPIP UDP - Phân loại Socket Socket có loại khác : Stream Socket Datagram Socket Websocket Unix socket 10 C# − Bước tạo 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 u cầu từ phía Khách hàng, đọc liệu từ NetworkStream viết phản hồi cho NetworkStream − Mã ví dụ : 14 89,526,124$ 3. − Chương trình C# Client Socket ứng dụng dựa Windows Máy khách kết nối với Cổng 8888 C# Server Socket Program Địa IP (Tên máy tính) VD 127.0.0.1 , Máy chủ Máy khách chạy máy 185,244 users − Khi chương trình C # Client bắt đầu, kết nối với Chương trình Ổ cắm máy chủ C # bắt đầu đọc liệu từ NetworkStream , ghi vào NetworkStream Khi bắt đầu chương trình máy khách, ta nhận tin nhắn từ Máy chủ "client started" Khi nhấn nút cuối Client window, gửi tin nhắn đến Máy chủ nhận phản hồi từ Máy chủ 100% 15 VD: 89,526,124$ 185,244 users 100% 16 JAVA JAVA - Các Socket cung cấp kỹ thuật giao tiếp hai máy tính sử dụng TCP Một chương trình Client tạo socket đầu cuối giao tiếp cố gắng để kết nối socket tới Server - Khi kết nối tạo, Server tạo đối tượng Socket đầu cuối giao tiếp Client Server giao tiếp việc đọc ghi từ Socket 18 JAVA ** Các bước sau xảy thành lập kết nối TCP hai máy tính sử dụng Socket: • Server khởi tạo đối tượng ServerSocket, biểu thị số hiệu cổng (port) để xuất giao tiếp • Server gọi phương thức accept() lớp ServerSocket Phương thức đợi tới Client kết nối với Server cổng cho • Sau Server đợi, Client khởi tạo đối tượng Socket, xác định tên Server số hiệu cổng để kết nối tới • Constructor lớp Socket cố gắng để kết nối Client tới Server số hiệu cổng xác định Nếu giao tiếp thành lập, Client có đối tượng Socket có khả giao tiếp với Server • Trên Server-side, phương thức accept() trả tham chiếu tới socket Server mà kết nối với socket Client 19 JAVA Sau kết nối thành lập, giao tiếp xảy sử dụng I/O stream Mỗi Socket có OutputStream InputStream OutputStream Client kết nối với InputStream Server, InputStream Client kết nối với OutputStream Server TCP giao thức giao tiếp hai chiều, liệu gửi qua hai luồng thời điểm Lớp java.net.Socket biểu diễn Socket, lớp java.net.ServerSocket cung cấp kỹ thuật cho chương trình Server để nghe thơng tin từ Client thành lập kết nối với chúng 20 JAVA • Các phương thức lớp ServerSocket Java - Lớp java.net.ServerSocket trong Java sử dụng ứng dụng Server để thu nhận cổng nghe yêu cầu từ Client - Lớp ServerSocket có constructor sau: 21 JAVA Các phương thức lớp Socket Java Lớp java.net.Socket biểu diễn socket mà Client Server sử dụng để kết nối với Client thu nhận đối tượng Socket việc khởi tạo nó, Server thu nhận đối tượng Socket từ giá trị trả phương thức accept() Lớp Socket có constructor mà Client sử dụng để kết nối tới Server: 22 NHẬN XÉT .NET 89,526,124$ Ưu điểm: Mã nguồn rõ ràng, NET 2.0, mã nguồn tách biệt với giao diện HTML Visual Studio sinh mã, tiết kiệm thời gian viết code Có thể dùng C#, VB Managed C++ 185,244 users Nhược điểm: Không thể chạy Linux Nếu ko có Visual Studio khó viết code 100% 24 C/C++ Ưu điểm: 89,526,124$ Có tính bảo mật hiệu cao Cho phép can thiệp điều khiển phần cứng chạy tảng đồng thời tận dụng tối đa tài nguyên phần cứng mà chạy Tốc độ nhanh mượt hệ thống đòi hỏi hiệu suất cao 185,244 users Nhược điểm: Sử dụng Pointers phức tạp tốn nhiều tài nguyên nhớ Sử dụng sai khiến chương trình bị lỗi thực thi không Một số vấn đề bảo mật tồn điểm yếu pointers, hàm Friend, biến tồn cục 100% Khơng có tính Thu gom rác (Garbage Collection) để tự động loại bỏ liệu không cần thiết 25 C# Ưu điểm: 89,526,124$ Dễ học dễ đọc mã c ++ Phát triển nhanh có khả lỗi so với c ++ java (bạn có loại khơng dấu, bạn có ref / out, bạn tạo loại giá trị riêng mình, bạn có thứ hữu ích khác mà java bỏ qua có nghĩa bạn nhảy qua vịng có nghĩa độ phức tạp mã cần thiết hơn) Tất thứ truyền tham chiếu ngoại trừ 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 luồng để chờ tín hiệu 185,244 users Bạn tạo loại giá trị, theo mặc định truyền theo giá trị thay truyền tham chiếu, cách tạo cấu trúc thay lớp Nhược điểm: Sử dụng nhiều nhớ c ++ Trình thu gom rác sử dụng chu kỳ nhớ CPU Một số thứ không hoạt động chức gọi đơn số cửa sổ không tồn linux, việc triển khai biểu mẫu đơn windows cần có cách giải mã 100% Phương thức gọi thông qua đại biểu chậm đáng kể so với cách gọi phương thức bình thường 26 Java Ưu điểm: 89,526,124$ Sự phong phú thư viện nguồn mở Phân bổ nhớ tự động tự thu gom rác Theo mô hình OOP Có hệ thống phân bổ ngăn xếp Mức độ độc lập tảng cao nhờ tính JVM 185,244 users Độ an tồn cao Lý tưởng cho tính toán phân tán Hỗ trợ đa luồng Nhược điểm: Thiếu mẫu để tạo cấu trúc liệu có chất lượng cao 100% Quản lý nhớ đắt tiền Chậm ngơn ngữ lập trình biên dịch tự nhiên, C C ++ 27 Free templates for all your presentation needs For PowerPoint and Google Slides 100% free for personal or commercial Ready to use, professional and Blow your audience away with use customizable attractive visuals ... Transmission Control Protocol) thực chức định danh ứng dụng liệu gửi đến - Socket giúp lập trình viên kết nối ứng dụng để truyền nhận thông tin liệu thông qua mạng Internet phương thức TCPIP UDP - Phân... liệu ѕẽ thiết lập kết nối tiến trình ᴠới Việc nàу đảm bảo liệu truуền đến nơi nhận cách хác, địa ᴠà thứ tự Socket không hướng kết nối: Nó hoạt động dựa giao thức UDP, giao thức hướng thông điệp... thiết lập kết nối trình ᴠới Ngược lại ᴠới giao thức TCP liệu truуền theo giao thức UDP không tin cậу, khơng trình tự ᴠà lặp lại C++ - Socket điểm cuối (được gọi end point) liên kết truyền thông