Đơn giản
Java được thiết kế để trở thành một ngôn ngữ lập trình dễ đọc và quen thuộc với nhiều lập trình viên, do đó đã loại bỏ các tính năng phức tạp của C và C++, như thao tác con trỏ, nạp chồng (overload), lệnh "goto" và file header (.h) Ngoài ra, cấu trúc "struct" và "union" cũng không có trong Java.
Hướng đối tượng
Java được thết kế quanh mô hình hướng đối tượng Vì vậy trong Java, tiêu điểm là dữ liệu và các phương pháp thao tác lên dữ liệu đó.
Khả năng bảo trì của một chương trình, hay còn gọi là khả năng vận hành, cho phép chương trình được viết trên một máy nhưng vẫn có thể chạy trên bất kỳ thiết bị nào Điều này được thể hiện qua mã nguồn và mã nhị phân Tại mức mã nguồn, lập trình viên cần xác định kiểu cho mỗi biến, trong khi kiểu dữ liệu trong Java được thiết kế nhất quán cho tất cả các hệ điều hành và phần cứng khác nhau Java cũng cung cấp một thư viện các lớp cơ sở riêng biệt để hỗ trợ phát triển.
Chương trình Java có khả năng chạy trên nhiều loại máy mà không cần viết lại, nhờ vào việc biên dịch thành mã nhị phân Điều này cho phép chương trình đã biên dịch hoạt động trên nền tảng khác mà không cần dịch lại mã nguồn Tuy nhiên, để thực hiện điều này, cần có phần mềm máy ảo Java, hoạt động như một trình thông dịch trên máy thực thi.
Hình 1: Minh họa biên dịch vàà̀ chạy chương trình C/C++
Trình biên dịch chuyển đổi các chương trình viết bằng C/C++ và ngôn ngữ khác thành mã máy tương thích với CPU Do đó, để chạy chương trình trên CPU khác, cần phải biên dịch lại.
Khoa Công Nghệệ̣ Thông Tin
Hình 2: Minh họa biên dịch vàà̀ chạy chuơng trình Ngôn ngữ lập trình Java
Môi trường phát triển của Java bao gồm hai thành phần chính: trình biên dịch và trình thông dịch Khác với C hay C++, trình biên dịch Java chuyển đổi mã nguồn thành bytecode, cho phép nó hoạt động độc lập với phần cứng và có thể chạy trên bất kỳ CPU nào.
Để thực thi chương trình dưới dạng byte code, mỗi máy cần có trình thông dịch Java, hay còn gọi là máy ảo Java Máy ảo Java có nhiệm vụ chuyển đổi byte code thành mã lệnh mà CPU có thể thực thi.
Mạnh mẽ
Java yêu cầu người lập trình phải định nghĩa rõ ràng kiểu dữ liệu khi viết mã Điều này giúp giảm thiểu lỗi, vì các kiểu dữ liệu sẽ được kiểm tra cả trong quá trình biên dịch và thời gian thực thi Nhờ đó, Java loại bỏ các kiểu dữ liệu dễ gây ra lỗi, đảm bảo tính ổn định và an toàn cho ứng dụng.
Bảo mật
Java cung cấp các lớp bảo mật bằng cách đóng gói dữ liệu và phương pháp bên trong lớp, cho phép truy xuất thông qua giao diện mà lớp cung cấp Điều này ngăn chặn việc truy xuất thông tin bên ngoài thông qua kỹ thuật tràn và hỗ trợ kỹ thuật dọn rác trong bộ nhớ Những đặc điểm này mang lại cho Java sự an toàn và khả năng cơ động cao, trong khi trình biên dịch kiểm soát để đảm bảo mã an toàn trong lớp thứ hai.
Lớp thứ ba được đảm bảo bởi trình thông dịch Chúng kiểm tra xem liệu byte code có đảm bảo các quy tắc an toàn trước khi thực thi.
Lớp thứ tư quản lý việc nạp các lớp vào bộ nhớ, đồng thời giám sát các vi phạm giới hạn truy xuất trước khi chúng được nạp vào hệ thống.
Khoa Công Nghệệ̣ Thông Tin
Phân tán
Java là ngôn ngữ lập trình linh hoạt, cho phép phát triển ứng dụng trên nhiều loại phần cứng, hệ điều hành và giao diện đồ họa khác nhau Được thiết kế đặc biệt cho các ứng dụng mạng, Java được sử dụng phổ biến trên Internet, nơi có sự đa dạng về nền tảng.
Đa luồng
Chương trình Java áp dụng kỹ thuật đa luồng (Multithread) để thực hiện các tác vụ đồng thời, đồng thời cung cấp giải pháp đồng bộ hóa giữa các tiến trình Tính năng hỗ trợ đa tiến trình này giúp phát triển các ứng dụng mạng linh hoạt và hiệu quả.
Động
Giao diện phía Server
Hình 2.14: Màà̀n hình chính 2.4.2.2Màà̀n hình Chat trực tiếp với Client
Hình 2.15: Màà̀n hình Chat trực tiếp với Client Đồ Án Tốt Nghiệệ̣p Nguyễn Minh Tiến_ 1601702 Khoa Công Nghệệ̣ Thông Tin
2.4.2.3Màà̀n hình Server gửi thông điệp cho Client
Hình 2.16: Màà̀n hình Server gửi thông điệp cho Client
2.4.2.4Màà̀n hình theo dõi Client
Chức năng này cho phép Server giám sát màn hình của Client, đồng thời có khả năng điều khiển chuột và bàn phím của máy Client khi bạn chọn nút điều khiển Hơn nữa, bạn có thể mở rộng màn hình để việc điều khiển trở nên thuận tiện hơn.
Hình 2.17: Màà̀n hình theo dõi Client Đồ Án Tốt Nghiệệ̣p Nguyễn Minh Tiến_ 1601702
Khoa Công Nghệệ̣ Thông Tin
2.4.2.5Màà̀n hình chụp ảnh màà̀n hình Client
Client sẽ chụp màn hình rồi gửi đến cho Server, Server sẽ hiển thị lên Form chụp màn hình.
Trên giao diện chụp màn hình của chương trình, người dùng có thể chụp ảnh bằng cách nhấn F5 hoặc nhấp vào nút ScreenShot Để lưu hình ảnh, hãy nhấn Ctrl + S hoặc chọn tùy chọn lưu ảnh trong menu quản lý, với nhiều định dạng lưu khác nhau.
Hình 2.18: Chụp ảnh màà̀n hình Client 2.4.2.6Màà̀n hình điều khiển Client từ xa
Để sử dụng chức năng Remote Desktop, Client cần cung cấp tài khoản và mật khẩu cho Server Khi tính năng này được kích hoạt, Client sẽ bị Logoff để nhường quyền điều khiển màn hình cho Server.
Hình 2.19: Màà̀n hình điều khiển Client từ xa 2.4.2.7Màà̀n hình gửi lệnh Shell
Hình 2.20: Màà̀n hình gửi lệnh Shell Đồ Án Tốt Nghiệệ̣p Nguyễn Minh Tiến_ 1601702
Khoa Công Nghệệ̣ Thông Tin
Chương 3: CÀÀ̀I ĐẶT – THỬ NGHIỆỆ̣M
Chương trình Quản lý và giám sát máy tính trong mạng LAN sử dụng giao thức TCP theo mô hình Client-Server, cho phép người dùng tương tác với hệ thống máy tính từ xa qua giao diện đồ họa thân thiện Nó cập nhật thông tin đồ họa từ máy tính từ xa và đồng bộ hóa thông tin quản lý của người dùng, tạo cảm giác như đang làm việc trực tiếp trên máy đó Chương trình hỗ trợ kết nối và quản lý nhiều máy tính cùng lúc, hoạt động hiệu quả trong cả hai chế độ Online và Offline.
Chương trình Server cung cấp nhiều chức năng hữu ích như điều khiển từ xa, chat, gửi tin nhắn, truyền file, chụp màn hình, Remote Desktop và theo dõi cũng như điều khiển màn hình của máy Client.
Hình 3.1: Giao diện chính máy server
Để kết nối với máy Server, người dùng cần nhập địa chỉ IP của Server vào chương trình trên máy Client Sau khi kết nối thành công, địa chỉ IP này sẽ được lưu lại trên máy Client để sử dụng cho các phiên khởi động sau Nếu địa chỉ IP của Server thay đổi, máy Client sẽ hiển thị một Form yêu cầu người dùng nhập lại địa chỉ IP mới của Server.
Client kết nối tới Server Client có nhiệm vụ kiểm tra kết nối đến máy Server sau mỗi
3 giây, nếu bên chương trình bên Server bị tắt hoặc bị khởi động lại thì Client sẽ luôn Đồ Án Tốt Nghiệệ̣p Nguyễn Minh Tiến_ 1601702
Khoa Công Nghệ Thông Tin phát triển hệ thống dò tìm kết nối nhằm tự động kết nối Client với Server Khi chương trình trên Server được khởi động, Client sẽ lập tức thiết lập kết nối đến Server.
Hình 3.2: Màà̀n hình chờ kết nối
Hình 3.3: Kết nối server thàà̀nh công
Code minh họa public void bnt_ok_Click(object sender, EventArgs e)
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(txt_ipserver.Text), 7400); maykhach = new TcpClient(); maykhach.Connect(ipep);
// lưu ip vàà̀o file StreamWriter ripserver = File.CreateText(fileipserver); ripserver.WriteLine(txt_ipserver.Text); ripserver.Close();
//nhan du lieu tu server th_nhandl = new Thread(new ThreadStart(nhandulieu)); th_nhandl.Start(); Đồ Án Tốt Nghiệệ̣p Nguyễn Minh Tiến_ 1601702
Khoa Công Nghệệ̣ Thông Tin
MessageBox.Show("Kết nối thàà̀nh công đến server: " + txt_ipserver.Text); this.Hide();
MessageBox.Show("IP của máy chủ không hợp lệ", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
{ StreamReader ipserver = File.OpenText(fileipserver); string sip; sip = ipserver.ReadLine(); ipserver.Close(); if (sip == "") { this.Show(); timer1.Enabled = false; timer2.Enabled = false;
} else { try { IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(sip), 7400); maykhach = new TcpClient(); maykhach.Connect(ipep); th_nhandl = new Thread(new ThreadStart(nhandulieu)); th_nhandl.Start(); sendinfo();
MessageBox.Show("Kết nối thàà̀nh công đến server!: " + sip,
"Thàà̀nh Công", MessageBoxButtons.OK, MessageBoxIcon.Information); catch (Exception) { this.Show(); timer1.Enabled = false; timer2.Enabled = false;
- Do chương trình được viết trên phần mềm: NetBeans IDE 8.2
Product Version: NetBeans IDE 8.2 (Build 201609300101) Đồ Án Tốt Nghiệệ̣p Nguyễn Minh Tiến_ 1601702
Khoa Công Nghệệ̣ Thông Tin
Java: 1.8.0_212; Java HotSpot(TM) 64-Bit Server VM 25.212-b10
Runtime: Java(TM) SE Runtime Environment 1.8.0_212-b10
System: Windows 10 version 10.0 running on amd64; Cp1252; en_US (nb)
User directory: C:\Users\TienLT\AppData\Roaming\NetBeans\8.2
To run the program, ensure that Microsoft NET Framework 4.0 is installed on your computer, along with support for Java JDK The cache directory can be found at C:\Users\TienLT\AppData\Local\NetBeans\Cache\8.2.
Chương trình đã được đóng gói thành file jar hoàn chỉnh, cho phép triển khai dễ dàng trên các máy tính trong mạng LAN như một phần mềm thông thường.
- Để đảm bảo tính ổn định và linh hoạt thì máy Server nên sử dụng địa chỉ IP tĩnh và hạn chế thay đổi địa chỉ IP.
Chương trình có thể quản lý, hỗ trợ, truyền file với các máy tính trong cùng mạng LAN, đáp ứng đủ nhu cầu sử dụng nội bộ.
Tốc độ xử lý của chương trình cũng khá nhanh.
Có thể hoạt động trong điều kiện Online và Offline khi không có mạng.
Tính năng theo dõi máy màn hình làm việc của máy Client khá mạnh mẽ.
Có thể sử dụng được cho cả Laptop, PC hay thông qua cả Wifi và LAN.
Chương trình có giao diện trực quan thân thiện nên rất dễ sử dụng. Đồ Án Tốt Nghiệệ̣p Nguyễn Minh Tiến_ 1601702 Khoa Công Nghệệ̣ Thông Tin
4.1 Kếế́t quả đạt được Đề tài “Chương trình hỗ trợ các máy tính trong mạng LAN” đã thực hiện được các nội dung sau:
Tìm hiểu được cách thức lập trình Socket và lập trình đa luồng trên môi trường NET
Tìm hiểu được cách thức hoạt động của một chương trình Chat đơn giản.
Tìm hiểu được cách thức điều khiển máy tính khác qua mạng LAN.
Tìm hiểu được cách thức gửi mọi loại File giữa các User trong cùng mạng LAN
Tìm hiểu được cách thức theo dõi máy tính khác qua mạng LAN. Ưu và nhược điểm của chương trình:
+ Quản lý và hỗ trợ máy tính khác đơn giản
+ Tích hợp một số chương trình ngoài trên phần mềm
+ Dễ update và chỉnh sửa
+ Chưa gửi kèm các hình ảnh khi Chat.
+ Chưa có chức năng xem lịch sử của Client.
Nghiên cứu đã hoàn thành các yêu cầu đề ra, tuy nhiên, nếu có điều kiện, đồ án sẽ nỗ lực mở rộng thêm các chức năng trong tương lai.
Hỗ trợ chức năng Voice Chat và Webcam.
Hỗ trợ chức năng xem lịch sử
Hỗ trợ chức năng họp Online
Cải tiến hơn về giao diện và sử dụng TabControl cho từng chức năng để gọn gàn hơn và tránh gây rối cho người dùng.
Có thể nhận biết các thao tác phần cứng trên Client như: Cắm USB, đóng mở ổ đĩa
Khóa mở bàn phím, chuột và các chức năng của hệ thống từ xa.
Trong quá trình thực hiện khóa luận tốt nghiệp, tôi đã có cơ hội làm quen với một môi trường làm việc mới và học cách xây dựng phần mềm hoàn chỉnh Tôi đã tích lũy được nhiều kinh nghiệm về kiến thức chuyên môn cũng như kỹ năng mềm cần thiết cho công việc.
DANH MỤC TÀÀ̀I LIỆỆ̣U THAM KHẢO
1) Thư viện Học liệu Mở Việt Nam (VOER) được tài trợ bởi Vietnam Foundation và vận hành trên nền tảng Hanoi Spring. Đia chi: https://voer.edu.vn [Truy cập ngày: 20/12/2019].
2) Packt Publishing Ltd (2015), “Mastering OpenVPN”. Đia chi: https://bom.to/WkJrOs [Truy cập ngày: 20/12/2019].
3) ITFORVN. Đia chi: https://bom.to/32JzKs[Truy cập ngày: 10/01/2020].
4) GitHup. Đia chi: https://github.com [Truy cập ngày: 19/01/2020]. Đồ Án Tốt Nghiệệ̣p Nguyễn Minh Tiến_ 1601702