Mô tả bài toán
Ngày nay, Internet đóng vai trò quan trọng trong đời sống, trở thành kênh thông tin phong phú cung cấp đa dạng các loại hình thông tin như tin tức, thể thao, sức khỏe, giải trí, giao lưu và đàm thoại Với khối lượng thông tin rộng lớn, Internet đáp ứng nhu cầu tìm kiếm và kết nối của người dùng.
Trong quá trình đổi mới, Nhà nước ta chú trọng đến việc sử dụng internet như một kênh thông tin quan trọng Qua internet, Đảng và Nhà nước có khả năng thông báo về các chính sách phát triển kinh tế - xã hội và giải đáp thắc mắc của nhân dân một cách trực tuyến.
Công nghệ điện tử đang phát triển mạnh mẽ, khiến việc sở hữu máy tính trở nên dễ dàng hơn Tuy nhiên, việc kết nối internet vẫn là thách thức đối với người dân nông thôn Do đó, mô hình kinh doanh phòng mạng máy tính có kết nối internet ngày càng trở nên phổ biến tại cả thành phố và nông thôn Để quản lý hiệu quả các máy tính trong phòng mạng, việc sử dụng phần mềm quản lý là cần thiết.
Chương trình “Quản lý phòng máy tính” là phần mềm quản lý hiệu quả các máy tính trong mạng LAN, được thiết kế theo mô hình Master - Slave Phần mềm này cung cấp nhiều chức năng hữu ích, giúp người quản lý phòng máy tính thực hiện công việc một cách dễ dàng và linh hoạt.
Cơ sở lý thuyết
1.2.1 Mô hình OSI Để dễ dàng cho việc kết nối và trao đổi thông tin giữa hai máy tính với nhau, vào năm 1983, tổ chức tiêu chuẩn thế giới - ISO đã phát triển mô hình mà hai máy tính có thể gửi và nhận dữ liệu cho nhau Mô hình này dựa trên tiếp cận phân tầng, với mỗi tầng đảm nhận một số chức năng nào đó Để hai máy tính có thể trao đổi thông tin với nhau thì có rất nhiều vấn đề liên quan ví dụ cần có card mạng, dây cáp mạng, điện thế tín hiệu trên cáp mạng, cách thức đóng gói dữ liệu, điều khiển lỗi đ-ờng truyền bằng cách phân chia các chức năng này vào những tầng riêng biệt nhau, việc các phần mềm để thực hiện chúng trở nên dễ dàng hơn Mô hình OSI giúp đồng nhất các hệ thống máy tính khác biệt nhau khi chúng trao đổi thông tin Mô hình này gồm 7 tầng: TÇng 1: TÇng vËt lý(Physical Layer) Điều khiển việc truyền tải thực sự các bit trên đ-ờng truyền vật lý Nó định nghĩa các thuộc tính về cơ, điện, quy định các loại đầu nối, ý nghĩa các pin trong đầu nối, quy định các mức điện thế cho các bit 0,1,
Tầng 2: Tầng liên kết dữ liệu (Data - Link Layer)
Tầng này đảm bảo việc truyền tải các khung dữ liệu giữa hai máy tính được kết nối trực tiếp qua đường truyền vật lý, đồng thời cài đặt cơ chế phát hiện và xử lý lỗi dữ liệu nhận.
Tầng 3: Tầng mạng (Network Layer)
Tầng này đảm bảo rằng các gói tin dữ liệu có thể được truyền từ máy tính này sang máy tính khác, ngay cả khi không có đường truyền vật lý trực tiếp giữa chúng.
Nó nhận nhiệm vụ tìm đ-ờng đi đến các mạng tính khác trong mạng
TÇng 4: TÇng vËn chuyÓn (Transport Layer)
Tầng này đảm bảo việc truyền tải dữ liệu giữa các quá trình một cách chính xác và hiệu quả Dữ liệu được gửi đi sẽ không có lỗi, được sắp xếp theo đúng trình tự và không bị mất mát hay trùng lặp Đối với các dữ liệu có kích thước lớn, tầng này sẽ chia nhỏ chúng trước khi gửi và sau đó tập hợp lại khi nhận được.
Tầng 5: Tầng giao dịch(Session Layer)
Tầng này cho phép các ứng dụng thiết lập, sử dụng và xóa các kênh giao tiếp giữa chúng, được gọi là giao dịch Nó cung cấp cơ chế nhận biết tên và chức năng bảo mật thông tin trong quá trình truyền tải qua mạng.
Tầng 6: Tầng trình bày(Presentation Layer)
Tầng này đảm bảo rằng các máy tính với định dạng dữ liệu khác nhau có thể trao đổi thông tin một cách hiệu quả Để thực hiện điều này, các máy tính thường thống nhất sử dụng một kiểu định dạng dữ liệu trung gian nhằm tạo điều kiện thuận lợi cho việc giao tiếp giữa chúng.
Tầng này chịu trách nhiệm chuyển đổi dữ liệu cần gửi thành định dạng trung gian trước khi truyền tải lên mạng Ngược lại, khi nhận dữ liệu, tầng này sẽ chuyển đổi dữ liệu về định dạng riêng của nó.
Tầng 7: Tầng ứng dụng(Application Layer) Đây là tầng trên cùng cung cấp các ứng dụng truy xuất đến các dịch vụ mạng Nó bao gồm các ứng dụng của ng-ời dùng nh- Web Browser(Netscape Navigator, Internet Explorer), các Mail user agent(Outlook Express, Netscape Messenger…) hay các ch-ơng trình server cung cấp các dịch vụ mạng ng-ời dùng mạng giao tiếp trực tiếp với tầng này
Mô hình Client-Server là một cấu trúc phổ biến trong mạng máy tính, được áp dụng rộng rãi và là nền tảng của mọi trang web hiện nay Trong mô hình này, máy con (máy khách) gửi yêu cầu đến máy chủ (người cung cấp dịch vụ), sau đó máy chủ xử lý yêu cầu và trả về kết quả cho máy khách.
Mô hình Master – Slaver trái ngược với mô hình Client – Server, trong đó máy chủ (Master) hoạt động như một người điều hành, gửi dữ liệu đến máy con (Slaver) mà không quan tâm đến nhu cầu của máy con.
Thuật ngữ Slaver được sử dụng để chỉ các chương trình thực hiện yêu cầu từ máy chủ (Master) Các chương trình trên máy client (Slaver) thực thi những yêu cầu hợp lý từ máy chủ và gửi kết quả về cho máy chủ Giao tiếp giữa chương trình Master và Slaver diễn ra thông qua các thông điệp qua cổng truyền thông IPC (interprocess communication) Để hai chương trình này có thể giao tiếp, cần có một giao thức chuẩn, mà chương trình Master phải tuân theo để lấy thông tin từ Slaver Với sự phát triển của mạng, nhiều giao thức chuẩn mới đã ra đời, trong đó có các giao thức TCP/IP, SNA của IBM, OSI, ISDN, X.25 và NetBios Máy tính chứa chương trình Server được gọi là máy chủ, trong khi máy chứa chương trình client được gọi là máy tớ.
1.2.3 Giao thức sử dụng trong truyền tải dữ liệu:
Trong việc truyền tải thông tin giữa các máy tính, nhiều giao thức được sử dụng, trong đó nổi bật nhất là TCP, TCP/IP và UDP Hai giao thức phổ biến nhất hiện nay là TCP và UDP, đóng vai trò quan trọng trong việc đảm bảo tính hiệu quả và đáng tin cậy của quá trình truyền dữ liệu.
- Giao thức UDP và TCP là hai giao thức phổ biến nhất ở lớp vận chuyển( Transport layer ) của giao thức TCP/IP UDP dùng ít byte hơn cho phần
Header của TCP yêu cầu nhiều byte hơn và cần xử lý phức tạp hơn so với các giao thức khác, nhưng bù lại, TCP cung cấp nhiều chức năng hữu ích như khả năng khôi phục lỗi, đảm bảo dữ liệu được truyền tải một cách chính xác và đáng tin cậy.
Các Header của TCP và UDP khác nhau ở(20 và 8 byte), nguyên nhân chủ yếu là TCP hỗ trợ nhiều chức năng hơn
Các ứng dụng sử dụng TCP cần thiết lập một kết nối TCP trước khi truyền dữ liệu, với mỗi kết nối tồn tại giữa một cặp TCP Socket, được xác định bởi địa chỉ IP, cổng và giao thức lớp vận chuyển Quá trình thiết lập kết nối bao gồm việc khởi tạo Socket với giá trị cổng nguồn và cổng đích, chỉ số tuần tự và ACK Trong quá trình này, hai Host sẽ chọn cổng và chỉ số tuần tự, sử dụng các chỉ số TCP để nhận diện thông điệp trong quá trình bắt tay ba bước Máy chủ (Server) phải lắng nghe yêu cầu kết nối từ máy khách (Client) trên cổng 80, trong khi máy khách chọn một cổng chưa sử dụng làm cổng nguồn, thường là từ 1024 trở lên Cần lưu ý rằng giá trị cổng trong các phân đoạn (Segment) trong tiến trình này là không đổi, với Segment là đơn vị mô tả dữ liệu tại lớp vận chuyển, được gọi là PDU (Protocol Data Unit).
Trong phần Header của TCP, có một số trường 1 Bit được gọi là các cờ, phục vụ cho nhiều mục đích khác nhau Cờ SYN và ACK đặc biệt quan trọng, vì chúng xác định xem một Segment là Segment đầu tiên hay thứ hai trong một kết nối.
Tổng quan về ch-ơng trình “ Quản lý phòng máy tính”
1.3.1 Sơ đồ kết nối và trao đổi dữ liệu của giao thức TCP, UDP
- Sơ đồ kết nối và trao đổi dữ liệu của giao thức TCP
Sơ đồ kết nối và trao đổi dữ liệu của giao thức TCP
- Sơ đồ kết nối và trao đổi dữ liệu của giao thức UDP
Sơ đồ kết nối và trao đổi dữ liều bằng giao thức UDP
1.3.2 Xây dựng ch-ơng trình dựa trên giao thức kết nối UDP
- Ch-ơng trình quản lý phòng máy tính gồm hai ch-ơng trình, một chạy ở
Client và một chạy ở Server Giao thức đ-ợc sử dụng để giao tiếp với nhau là UDP
- Ch-ơng trình Server quản lý máy client(quản lý đăng nhập, quản lý các process, service, quản lý th- mục, file )
- Đầu tiên, máy Server mở cổng ( port ) để “lắng nghe”( Listen ) các kết nối từ máy Client
- Sau khi ch-ơng trình trên máy Server đã đ-ợc chạy, chạy ch-ơng trình trên máy Client và kết nối với máy server
Sau khi hai máy được kết nối qua hai chương trình, máy chủ gửi yêu cầu đến máy khách Sau khi xử lý các yêu cầu từ máy chủ, máy khách sẽ gửi báo cáo kết quả trở lại cho máy chủ.
15
Phân tích các chức năng chung của hệ thống
2.1.1 Chức năng nghiệp vụ của hệ thống
Chương trình “Quản lý phòng máy tính” chủ yếu thực hiện việc quản lý máy client thông qua việc theo dõi và kiểm soát người dùng đăng nhập cũng như tài nguyên của máy client.
Để đảm bảo chức năng hoạt động hiệu quả, việc duy trì kết nối mạng là ưu tiên hàng đầu Cần thiết lập cơ sở dữ liệu để lưu trữ thông tin về tài khoản đăng nhập máy client, tài khoản người dùng và ghi nhận các lỗi của hệ thống nhằm khắc phục kịp thời.
2.1.2 Chức năng quản trị hệ thống
Chức năng quản trị hệ thống đóng vai trò quan trọng trong việc đảm bảo an toàn cho hệ thống Để hệ thống hoạt động tin cậy và an toàn, cần có các biện pháp ngăn ngừa hỏng hóc, nhằm duy trì kết nối ổn định giữa server và client trong quá trình quản lý.
Các thao tác trên hệ điều hành của máy client yêu cầu thời gian chờ do độ trễ trong quá trình truyền thông tin giữa client và server Để thực hiện thao tác mới, cần kiểm tra xem các thao tác trước đã hoàn thành hay chưa, nhằm tránh mất mát hoặc sai lệch dữ liệu trong quá trình truyền tải.
2.1.3 Chức năng quản lý máy client
- Chức năng quản lý tài khoản :
+ Cập nhật thời gian còn lại của tài khoản sau mỗi phút, không cho phép đồng thời đăng nhập hai máy client bằng một tài khoản
+ Cho phép ng-ời dùng vẫn đ-ợc sử dụng máy bình th-ờng trong tr-ờng hợp ng-ời dùng không muốn tạo tài khoản
- Chức năng quản lý máy:
+ Thực hiện các yêu cầu : tắt máy, khởi động lại, standby,
+ Quản lý các process trên máy client
+ Quản lý các dịch vụ của máy client
+ Quản lý các th- mục và file
2.1.4 Chức năng giám sát hệ thống
Chức năng này được thiết kế để quản trị hệ thống một cách hiệu quả, giúp phát hiện lỗi cùng với nguyên nhân, thời gian, ngày xảy ra lỗi và tên máy gặp sự cố.
Chức năng này t-ơng tự nh- chức năng EventViewer của Windows
2.1.5 Chức năng gửi message chat:
- Chức năng này giúp cho ng-ời quản trị có thể gửi thông báo xuông cho ng-ời sử dụng.
Thiết kế ch-ơng trình ch-ơng trình quản lý phòng máy
2.2.1 Thiết kế cơ sở dữ liệu:
Hệ quản trị cơ sở dữ liệu được chọn để viết các bảng cho cơ sở dữ liệu là SQL Server 2005, một hệ quản trị phổ biến hiện nay Trong khi SQL 2000 sử dụng Interprise Manager và Query Analyzer, SQL 2005 đã giới thiệu SQL Server Management Studio, công cụ quản lý mới thay thế hoàn toàn hai công cụ cũ Với SQL Server Management Studio, người dùng có thể quản lý nhiều thể hiện SQL Server dễ dàng hơn từ một giao diện duy nhất, bao gồm các dịch vụ như Analyzer service, Integration service và Reporting service.
SQL Management Object (SMO) là công cụ thay thế cho Distributed Management Object (DMO) được sử dụng trong SQL 2000 SMO mang lại hiệu suất nhanh hơn DMO trong nhiều thiết lập, bởi vì mỗi đối tượng chỉ thực hiện một phần tổng thể Chẳng hạn, khi cần liệt kê hàng ngàn đối tượng trong tree view, không cần nạp toàn bộ thông tin ngay lập tức; chỉ cần hiển thị tên đối tượng và nạp thông tin chi tiết khi cần thiết, giúp tiết kiệm thời gian cho các tác vụ đơn giản.
- ComputerName : thuộc tính khóa dùng l-u tên các máy tính khi kết nối với máy chủ
- IPAddress : thuộc tính l-u lại địa chỉ IP của máy khách
TT Tên thuộc tính Kiểu dữ liệu
- UserName : thuộc tính khóa dùng để l-u lại tên tài khoản ng-ời dùng
- Password : mật khẩu ng-ời của tài khoản
- SurName: họ tên của ng-ời dùng tài khoản
- Price : giá tiền mỗi giờ của tài khoản ng-ời dùng
TT Tên thuộc tính Kiểu dữ liệu
- UserName : Khóa ngoại, tên tài khoản ng-ời sử dụng
- TotalMoney: Tổng số tiền nạp
- TotalTime: Tổng thời gian đ-ợc phép truy cập
TT Tên thuộc tính Kiểu dữ liệu
- OrderID : thuộc tính khóa, mã của dịch vụ
- Number: số l-ợng dịch vụ đ-ợc đặt hàng
- ComputerName: thuộc tính khóa, tên máy đã đặt hàng dịch vụ
- UserName: Tên ng-ời dùng đã đặt hàng dịch vụ
TT Tên thuộc tính Kiểu dữ liệu
- OrderID : thuộc tính khóa, mã của dịch vụ
- Price : giá của dịch vụ
TT Tên thuộc tính Kiểu dữ liệu
- Thực thể 6: EventViewer - l-u lại các sự kiện xẩy ra trong hệ thống
- ComputerName: tên máy tính xẩy ra sự kiện
- Date: ngày xẩy ra sự kiện
- Time : giờ của ngày xẩy ra sự kiện
- Description : nguyên nhân xẩy ra sự kiện
TT Tên thuộc tính Kiểu dữ liệu
- ComputerName : thuộc tính khóa, tên máy tính
- UserName : tên tài khoản sử dụng máy tính t-ơng ứng
- LasteDate :Ngày truy cập cuối cùng của tài khoản trên máy tính
- totaltime : tổng thời gian truy cập trên máy tính
TT Tên thuộc tính Kiểu dữ liệu
4 TotalTime Int b Thành phần dữ liệu hệ thống ở mức vật lý
- Bảng lblEventViewer c L-ợc đồ quan hệ
2.2.2 Thiết kế các module ch-ơng trình
Ngôn ngữ thiết kế chương trình “Quản lý phòng máy tính” là Visual Studio 2008, một ngôn ngữ lập trình bậc cao phổ biến hiện nay Visual Studio 2008 hỗ trợ phát triển Net Framework phiên bản 2.0, 3.0 và 3.5, với nhiều tính năng nổi bật hơn so với phiên bản 2005 Đặc biệt, nó cung cấp tính năng XAML cho thiết kế văn bản, LINQ to SQL để mô tả ánh xạ và đóng gói đối tượng SQL Server, cùng với trình gỡ rối XSLT giúp xác định lỗi nhanh chóng Hơn nữa, Visual Studio 2008 còn có hàm API hỗ trợ nhiều phương thức, tạo điều kiện thuận lợi cho việc thao tác với hệ điều hành.
Giao thức UDP được sử dụng trong giao tiếp giữa máy chủ và máy khách, cho phép truyền tải các đoạn tin nhỏ và gói tin nhanh chóng Tuy nhiên, đây là giao thức không hướng kết nối, điều này có nghĩa là nó không đảm bảo việc truyền tải dữ liệu một cách đáng tin cậy Các module của Server đóng vai trò quan trọng trong quá trình này.
- Lớp ConnectionDB.cs – dùng để kết nối với cơ sở dữ liệu SQL server
Các biến trong lớp ConnectionDB.cs public static SqlCommand sqlComm;// public static SqlConnection sqlConn; public static SqlDataAdapter sqlAdapter; public static SqlDataReader sqlReader; public static DataSet myDataset;
Gồm có 2 ph-ơng thức tĩnh(static):
+ Ph-ơng thức OpenData: dùng để mở kết nối với cơ sở dữ liệu public static void OpenData()
{ string connectString = "Data Source=TRANHIEN\\SQLEXPRESS;Initial Catalog=Doan;Integrated Security=True"; sqlConn = new SqlConnection(connectString); try
{ if (sqlConn.State != ConnectionState.Open)
+ Ph-ơng thức CloseData: dùng để đóng kết nối cơ sở dữ liệu public static void CloseData()
{ if (sqlConn.State != ConnectionState.Closed)
- Lớp executeQueryData.cs : dùng để thực hiện truy vấn cơ sở dữ liệu, lớp này đ-ợc kế thừa từ lớp ConnectionDB.cs
Phương thức tĩnh `queryData` là một phương thức chồng cho phép thực hiện các truy vấn thông qua tên của thủ tục (Stored Procedure) đã được định nghĩa trong cơ sở dữ liệu Phương thức này trả về giá trị true nếu truy vấn thành công, ngược lại sẽ trả về false Cú pháp của phương thức là `public static bool queryData(string storeName)`, trong đó `storeName` là tên của thủ tục trong cơ sở dữ liệu Ngoài ra, phương thức còn có thể được sử dụng với cú pháp `public static bool queryData(string storeName, string[] Parameters, string[] values)`.
To execute a stored procedure in SQL, initialize a SqlCommand object and set its properties, including the command text, connection, and command type Then, loop through the parameters to pass data and arguments to the SQL command.
{ sqlComm.Parameters.AddWithValue(Paramaters[i], values[i]); } try
{ sqlConn.Close(); error = ex.Message; return false;
Lớp này đ-ợc kế thừa từ lớp executeQueryData , bao gồm các ph-ơng thức tĩnh(static) nh- sau:
The static insert method is a stacking technique that utilizes a single parameter, and its data type corresponds to one of the following objects: computerInfo, userInfo, CardInfo, OrderInfo, Order_Detail, or csEventViewer.
Muốn thêm dữ liệu vào bảng tblcomputer thì ph-ơng thức là: public static bool Insert(computerInfo _computerInfo)
{ string[] parametrs = new string[] { "@ComputerName", "@IPAddress" }; string[] values = new string[]
{_computerInfo.ComputerName,_computerInfo.IPAddress }; return excuteQueryData.queryData("tblComputer_Insert", parametrs, values);
Muốn thêm dữ liệu vào bảng tblCard thì ta có: public static bool Insert(CardInfo _cardInfo)
{ string[] parametrs = new string[] { "@UserName",
"@TotalMoney","@timeLimited" }; string[] values = new string[] { _cardInfo.UserName, _cardInfo.TotalMoney.ToString(),_cardInfo.TimeLimited.ToString() }; return excuteQueryData.queryData("tblCard_Insert", parametrs, values);
Phương thức tĩnh (static) Update là một phương thức chồng, chỉ nhận một tham số truyền vào và kiểu dữ liệu của tham số này là một đối tượng (class).
- Khi cập nhật dữ liệu vào bảng tblCard trong cơ sở dữ liệu thì ta có: public static bool Update(CardInfo _card)
{ string[] Paramater = new string[] { "@UserName", "@time" }; string[] Values = new string[] { _card.UserName,
_card.TimeLimited.ToString() }; return excuteQueryData.queryData("tblCard_UpdateTime", Paramater,
- Khi ta muốn cập vào bảng tblOrderDetail trong cơ sở dữ liệu thì public static bool Update(OrderDetail _orderDetail)
{ string[] Paramater=new string[] { "@ID", "@name", "@type", "@price" }; string[] Value = new string[] { _orderDetail.OrderID.ToString(), _orderDetail.OrderName, _orderDetail.Type, _orderDetail.Price }; return excuteQueryData.queryData("tblOderDetail_Update", Paramater, Value);
+ Ph-ơng thức tĩnh(static) getTable :
Là ph-ơng thức thực hiện câu lênh select trong sql, ph-ơng thức này là một ph-ơng thức chồng Kiểu dữ liệu trả về là Datatable
Trong tr-ờng hợp câu lệnh select không có tham số truyền vào thì ph-ơng thức getTable là: public static DataTable getTable(string storeProcedureName)
OpenData(); sqlComm = new SqlCommand(); sqlComm.CommandText = storeName; sqlComm.Connection = sqlConn; sqlComm.CommandType = CommandType.StoredProcedure; try
System.Data.SqlClient.SqlDataAdapter(sqlComm); msqlAdapter.Fill(tb); sqlAdapter.Dispose();
Trong tr-ờng hợp câu lệnh select có tham số thì ph-ơng thức là getTable: public static DataTable getTable(string storeProcedure, string
OpenData(); sqlComm = new SqlCommand(); sqlComm.CommandText = storeName; sqlComm.Connection = sqlConn; sqlComm.Parameters.AddWithValue(_paramater, _value); sqlComm.CommandType = CommandType.StoredProcedure; try
{ sqlAdapter = new SqlDataAdapter(sqlComm); sqlAdapter.Fill(tb); sqlAdapter.Dispose();
- Lớp computerInfo.cs – các thuộc tính của lớp là các cột trong bảng tblcomputer : public class computerInfo
{ string _computerName; public string ComputerName
{ get { return _computerName; } set { _computerName = value; }
} string _ipaddress; public string IPAddress
{ get { return _ipaddress; } set { _ipaddress = value; }
- Lớp CardInfo.cs : các thuộc tính của lớp t-ơng ứng là cột của bảng tblCard public class CardInfo
{ string _cadrdID; public string CardID
{ get { return _cadrdID; } set { _cadrdID = value; }
} string _userName; public string UserName
{ get { return _userName; } set { _userName = value; }
} int _totalMoney; public int TotalMoney
{ get { return _totalMoney; } set { _totalMoney = value; }
} int _totalTime=0; public int TimeLimited
{ get { return _totalTime; } set { _totalTime = value; }
- Các lớp còn lại nh-: UserInfo.cs, Order_Detail.cs, Computer_UserInfo.cs, csEvetnViewer.cs cũng đ-ợc xây dựng t-ơng tự
Là lớp bao gồm nhiều ph-ơng thức dùng để điều khiển máy khách
- là ph-ơng thức thực hiện gửi các message xuống máy trạm
- ph-ơng thức này có 3 tham số: udpclient, string, string các message gửi xuống máy khách gồm hai phần:
- phần 1: phần mã lệnh, phần này gồm 10 ký tự
- phần 2: tên máy chủ, các thông tin khác các message sẽ đ-ợc đổi sang mảng byte để truyền public static bool SendControl(UdpClient m_client,string clientName, string Frame)
{ byte[] Data = Encoding.ASCII.GetBytes(Frame); m_client.Send(Data, Data.Length, clientName, 5001); return true;
Khi muốn gửi một yêu cầu xuống máy khách thì ta có:
Remote.SendControl (udpclient, tên_máy_nhận, mã_lệnh)
Phương thức tĩnh (static) Lock và Unlock được sử dụng để điều khiển chức năng khóa và mở khóa máy Cụ thể, phương thức public static void Lock(UdpClient m_client, string ClientName) cho phép khóa máy khách, trong khi phương thức Unlock thực hiện chức năng ngược lại.
// lệnh yêu khóa máy string cmdCode = "Lock "+ Tên_máy_chủ;
// lệnh yêu cầu mở khóa //cmdcode = "UnLock " + tên_máy_chủ;
+ Ph-ơng thức login, logout : là hai ph-ơng thức cho phép, không cho phép ng-ời dùng sử dụng máy tính Mã lệnh là
Tr-ờng hợp cho phép sử dụng: cmdCode = "afxLogin "+tờn_mỏy_chủ;
Tr-ờng hợp không cho phép sử dụng: cmdCode="Logout " + tên_máy_chủ;
Các phương thức Shutdown, Reset, Hibernate và Standby sử dụng phương thức SendControl(m_client, ClientName, cmdCode) để thực hiện các chức năng điều khiển tắt máy, khởi động lại, ngủ đông và chế độ chờ cho máy khách Những phương thức này nhận hai tham số đầu vào, bao gồm UDPClient và chuỗi (string) cmdCode là các mã lệnh tương ứng cho từng chức năng.
- ph-ơng thức Shutdown : cmdCode = "Shutdown "+Tờn_mỏy_chủ;
- ph-ơng thức Reset : cmdCode = "Reset _" + Tờn_mỏy_chủ;
- ph-ơng thức Hibernate : cmdCode = "Hibernate_" + Tờn_mỏy_chủ;
- ph-ơng thúc Standby: cmdCode = "Standby _" + Tờn_mỏy_chủ;
+ Ph-ơng thức send : ph-ơng thức này gửi yêu cầu máy khách bật tính tÝnh chat public static void Send(UdpClient m_client, string clientName)
{ string cmdCode = "Chat "; string packet = cmdCode + SystemInformation.ComputerName; byte[] Data = Encoding.ASCII.GetBytes(packet); m_client.Send(Data, Data.Length, clientName, 5001);
+ Ph-ơng thức chatclient : ph-ơng thức chuyển các message chat xuống máy máy khách public static void clientChat(UdpClient m_client, string ClientName, string message)
{ string msg = tên_máy_chủ +" :" + message; byte[] Data = Encoding.Unicode.GetBytes(msg); try
{ m_client.Send(Data, Data.Length, ClientName, 5002);
} catch (System.Net.Sockets.SocketException er)
MessageBox.Show(er.Message); return;
The `getDirAndFile` method is designed to request information about directories, drives, and files from a client machine It is implemented as a public static method that takes a `UdpClient`, a `clientName`, and a `command` as parameters.
{ string frame = command + "*" + SystemInformation.ComputerName; byte[] Data = Encoding.ASCII.GetBytes(frame); try
{ m_client.Send(Data, Data.Length, clientName, 5001);
The CreateFolder method enables the client to request the creation of a directory based on the path provided by the server This method is defined as public static void CreateFolder(UdpClient m_client, string clientName, string FullPath, string FolderName).
{ string frame = "CreateFold";// command frame += FullPaht;// duong dan tao thu muc moi frame += "*" + FolderName;
The DeleteFolder method allows the client to request the deletion of a directory based on the path provided by the server This method is defined as public static void DeleteFolder(UdpClient m_client, string ClientName, string FullPath).
{ string frame = "DeleteFold"; frame += FullPath;
- Các namespace cần thiết đ-ợc thêm vào:
- System.Net.Sockets: líp UDPClient,
- Ph-ơng thức ServerStart và ph-ơng thức Waitmessage:
Thực hiện mở cổng để nhận các message từ máy khách gửi lên, khởi tạo một Thread(luồng) riêng để nhận các message public bool ServerStart()
{ endpoint = new IPEndPoint(IPAddress.Any, 0); client = new UdpClient(5000);
Thread srvReceive = new Thread(new ThreadStart(WaitMessage)); srvReceive.Start(); return true;
Remote.saveEvent(err.Message, 0, "Server"); return false;
// byte[] msg = new byte[1024]; try
{ data = client.Receive(ref endpoint); if (data.Length > 0)
Remote.saveEvent(er.Message, 0, "Server");
Ph-ơng thức này thực hiện cắt mảng byte nhận đ-ợc từ máy khách(client) gửi cho máy chủ thành hai phần:
Phần 1 : gồm 10 byte đầu tiên trong mảng byte Phần mã lệnh
Phần 2 là phần còn lại sau khi đã cắt 10 ví trí đầu của mảng byte Phần thông tin Đoạn thuật toán cắt: for (int i = 0; i < msg.Length; i++)
Phương thức này xử lý mảng 10 ký tự đã được tách thành xâu bởi phương thức ProcessReceived, sau đó áp dụng cấu trúc switch … case để xử lý từng mã lệnh tương ứng do máy khách gửi lên.
Phương thức Login là cách thức xử lý thông tin đăng nhập mà máy khách gửi lên, bao gồm hai trường hợp đăng nhập có thể xảy ra.
+ tr-ờng hợp ng-ời dùng có tài khoản đăng nhập:
Kiểm tra xem số thời gian cho phép sử dụng của tài khoản có còn tiền nữa không, nếu hết thì thông báo
Yêu cầu cấu hình để chạy ch-ơng trình
- Máy Server cài đ-ợc phần mềm Frame work ( DOTNETFX.EXE ), cài SQL 2005 để chạy máy chủ( Server )
- Hệ điều hành Winxp, server 2003 dùng cho máy chủ( Server ) hoặc máy khách( Client ).
Giao diện ch-ơng trình
3.2.1 Các giao diện bên phía máy server
- Giao diện chính của ch-ơng trình ( Server.cs)
- Giao diện form quản lý máy khách (Manage.cs)
- Tab hiển thị các máy đang trong trạng thái kết nối
- Tab quản lý process của máy khách
- Tab quản lý các ổ đĩa của máy khách
- Tab quản lý các dịch vụ trên máy khách
- Tab truyền file xuống máy khách
- Giao diện form xem các sự kiện hệ thống
- Giao diện form quản lý tài khoản
- Giao diện form quản lý dịc vụ
3.2.2 Giao diện bên phía máy khách(client)
- Giao diện của Form nhập thông tin máy chủ
Các chức năng nổi bật
Chức năng nổi bật nhất của hệ thống là khả năng chuyển giao thông tin liên tục giữa hai máy, cho phép máy chủ và máy khách hiểu nhau một cách chính xác thông qua các thông điệp.
Các chức năng tắt máy, khởi động lại, đăng xuất và khóa máy có ảnh hưởng trực tiếp đến hệ điều hành của máy Client thông qua lớp WMI Vì vậy, việc thực hiện các thao tác này cần phải chính xác và cẩn thận.
- Hổ trợ nhiều Client cùng truy cập một lúc nh- có thể cùng lúc Chat với các máy trong mạng
- Xem, hủy các tiểu trình( Process ) trên máy Client bằng máy Server
- Xem, tạo mới, xóa, đổi tên các th- mục trên máy Client từ máy Server
- Xem, chạy, dừng, tạm ngừng và chạy tiếp dịch vụ (service)
Các kỹ thuật đã tìm hiểu
- Giao thức UDP và giao thức TCP : Ưu và nh-ợc điểm của hai giao thức
- Socket : Hiểu đ-ợc quy trình giao tiếp qua Socket
- Thread : Thực hiện đa tiểu trình
- Delegate, Invoke : Giúp cho các tiểu trình can thiệp vào Form
- Process : Hiểu đ-ợc cách thức hoạt động của Process trong máy tính
Nắm vững kiến thức cơ bản về các đối tượng trong lớp WMI của hệ điều hành, cùng với các chức năng của chúng, là điều quan trọng Bài viết này sẽ hướng dẫn bạn cách yêu cầu hệ điều hành thực hiện một số chức năng cụ thể và giới thiệu một số chức năng của các đối tượng trong Win32.
- Các thao tác về ổ đĩa, th- mục, file nh- xóa, copy, đổi tên, di chuyển
- Thao tác cơ bản trên Registry nh- xóa, tạo mới, đọc thông tin từ Registry
Hạn chế
Giao thức UDP, do không có kết nối và thiếu cơ chế phục hồi lỗi, có thể dẫn đến tình trạng bên nhận không hiểu rõ yêu cầu từ bên truyền trong quá trình truyền dữ liệu.
H-ớng phát triển
Chương trình hiện tại đã thực hiện được các chức năng cơ bản, từ đó có thể phát triển thành một hệ thống quản lý phòng mạng Internet với tính năng chuyên sâu hơn trong tương lai.
Có thể phát triển theo h-ớng chuyên sâu về bảo mật máy Client trong khi chúng đ-ợc kết nối Internet
Ngoài ra, còn có thể xây dựng ch-ơng trình quản lý thông qua kết nối
VPN là một trong những h-ớng rất hay.