Professional Documents
Culture Documents
MỤC LỤC....................................................................................................................................2
DANH SÁCH HÌNH VẼ..............................................................................................................3
DANH SÁCH BẢNG BIỂU.........................................................................................................4
DANH SÁCH CÁC TỪ VIẾT TẮT.............................................................................................5
MỞ ĐẦU (GIỚI THIỆU ĐỀ TÀI)...............................................................................................6
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT.............................................................................................7
1.1. Tổng quan về mạng máy tính......................................................................................7
1.1.1. Khái niệm mạng máy tính.....................................................................................7
1.1.2. Mô hình OSI và chức năng các tầng.....................................................................7
1.1.3. Họ giao thức TCP/IP.............................................................................................9
1.1.4. Một số kiểu mạng LAN........................................................................................9
1.1.5. Mô hình kết nối và làm việc Server – Client......................................................12
1.2. Tổng quan về lập trình ứng dụng mạng trong C#......................................................14
1.2.1. Giới thiệu về ngôn ngữ C#..................................................................................14
1.2.2. Một số thư viện sử dụng trong lập trình ứng dụng mạng...................................15
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG.................................................................22
2.1. Mô tả hệ thống...........................................................................................................22
2.2. Các yêu cầu xây dựng phần mềm..............................................................................22
2.3. Đặc tả chức năng.......................................................................................................23
2.3.1. Chức năng gửi dữ liệu đến các máy trạm...........................................................23
2.3.2. Chức năng gửi dữ liệu đến máy chủ...................................................................23
2.3.3. Chức năng theo dõi máy trạm.............................................................................23
2.3.4. Chức năng hẹn giờ tắt, khởi động lại máy trạm..................................................23
CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ..........................................................24
3.1. Triển khai...................................................................................................................24
3.1.1. Xây dựng giao diện chương trình.......................................................................24
3.1.2. Kết nối các máy trạm với máy chủ.....................................................................24
3.1.3. Xây dựng chức năng xem thông tin về cấu hình của các máy trạm...................26
3.1.4. Xây dựng chức năng xem mức sử dụng CPU, tốc độ mạng, RAM, ROM.........30
3.1.5. Xây dựng chức năng xem các tiến trình đang chạy và các phần mềm được cài
đặt trên máy trạm................................................................................................................33
3.1.6. Xây dựng chức năng hẹn giờ tắt, khởi động lại máy trạm..................................34
3.2. Đánh giá kết quả........................................................................................................35
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..................................................................................36
TÀI LIỆU THAM KHẢO..........................................................................................................37
PHỤ LỤC....................................................................................................................................37
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT
1.1. Tổng quan về mạng máy tính
Ưu điểm : Với dạng kết nối này có ưu điểm là không tốn nhiều dây cáp, tốc độ truyền
dữ liệu cao, dễ thiết kế.
Ưu điểm : Với dạng kết nối này có ưu điểm là không tốn nhiều dây cáp, tốc độ truyền
dữ liệu cao, không gây ách tắc.
Nhược điểm : Các giao thức để truyền dữ liệu phức tạp và nếu có trục trặc trên một
trạm thì cũng ảnh hưởng đến toàn mạng.
Mạng LAN kiểu STAR (kiểu hình sao)
Mạng hình sao : tất cả các trạm được nối vào một thiết bị trung tâm có nhiệm vụ nhận
tín hiệu từ các trạm và chuyển tín hiệu đến trạm đích với phương thức kết nối là phương thức
Ưu điểm : Với dạng kết nối này có ưu điểm là không đụng độ hay ách tắc trên đường
truyền, tận dụng được tốc độ tối đa đường truyền vật lý, lắp đặt đơn giản, dễ dàng cấu hình
lại mạng (thêm, bớt trạm). Nếu có trục trặc trên một trạm thì cũng không gây ảnh hưởng đến
toàn mạng qua đó dễ dàng kiểm soát và khắc phục sự cố.
Nhược điểm : Độ dài đường truyền nối một trạm với thiết bị trung tâm bị hạn chế
(trong vòng 100m với công nghệ hiện nay) tốn đường dây cáp nhiều.
Hình 1.8: Cơ chế truyền nhận dữ liệu mô hình Server – Client trong C#
1.2.2. Một số thư viện sử dụng trong lập trình ứng dụng mạng
Socket là một giao diện lập trình ứng dụng (API) mạng.
Thông qua giao diện này chúng ta có thể lập trình điều khiển việc truyền thông giữa
hai máy sử dụng các giao thức mức thấp là TCP, UDP…
Socket là sự trừu tượng hóa ở mức cao, có thể tưởng tượng nó như là thiết bị truyền
thông hai chiều gửi - nhận dữ liệu giữa hai máy tính với nhau.
Số hiệu cổng của socket:
Để có thể thực hiện được các giao tiếp, một trong hai quá trình cần phải công bố số
hiệu cổng của socket mà mình sử dụng.
Mỗi một cổng giao tiếp thể hiện một địa chỉ xác định trong hệ thống. Khi quá trình
được gán một số hiệu cổng nó có thể nhận dữ liệu đến cổng này từ quá trình khác.
Đặc điểm của Socket hướng kết nối :
- Có một đường kết nối ảo giữa 2 tiến trình
- Một trong 2 tiến trình phải đợi tiến trình kia yêu cầu kết nối
- Có thể kết nối liên lạc theo mô hình Client/Server
- Trong mô hình Client/Server thì Server lắng nghe và chấp nhận một yêu cầu
kết nối
- Mỗi thông điệp gửi đều có xác nhận trở về
- Các gói thông tin chuyển đi tuần tự
- Hai tiến trình liên lạc với nhau không kết nối trực tiếp
- Thông điệp gửi đi phải kèm theo địa chỉ của người nhận
- Thông điệp có thể gửi nhiều lần
- Người gửi không chắc chắn thông điệp tới tay người nhận
- Thông điệp gửi sau có thể đến đích trước thông điệp gửi trước
TcpClient() Tạo một đối tượng TcpClient. Chưa đặt thông số.
TcpClient(IPEndPoint) Tạo một TcpClient và gắn cho nó một IPEndPoint cục bộ.
(Gán địa chỉ máy cục bộ và số hiệu cổng để sử dụng trao đổi
thông tin về sau)
TcpClient Tạo một đối tượng TcpClient và kết nối đến một máy có địa
(RemoteHost:String, Int32) chỉ và số hiệu cổng được truyền.
Connected Trạng thái cho biết đã kết nối được đến Server hay chưa.
Close() Giải phóng đối tượng TcpClient nhưng không đóng kết nối.
Connect(RemoteHost, Kết nối một máy Tcp khác có tên và số hiệu cổng tương ứng.
Port)
TCPListener là một lớp cho phép người lập trình có thể xây dựng các ứng dụng
server (Ví dụ: SMTP Server, FTP Server, DNS Server, POP3 Server hay Server tự định nghĩa
…) ứng dụng Server khác ứng dụng Client ở chổ nó luôn luôn thực hiện lắng nghe và chấp
nhận các kết nối đến từ Client.
TCPListener(Port: Int32) Tạo một TCPListener và lắng nghe tại cổng chỉ định.
TCPListener Tạo một TCPListener và lắng nghe các kết nối đến tại địa chỉ
(IPAddress,Int32) IP và cổng chỉ định.
TCPListener (IPEndPoint) Tạo một TCPListener với giá trị EndPoint truyền vào.
AcceptTCPClient Chấp nhận một yêu cầu kết nối đang chờ (ứng dụng sẽ
dừng tại câu lệnh này cho đến khi nào có một kết nối đến).
AcceptSocket Chấp nhận một yêu cầu kết nối đang chờ.
Pending Cho biết có kết nối nào đang chờ đợi không (True = có).
Start() Bắt đầu lắng nghe các yêu cầu kết nối.
Thông qua mô hình này ta có thể ủy nhiệm cho một thủ tục nào đó thực hiện khi sự
kiện xảy ra trên Control.
Sử dụng Socket không đồng bộ:
Bảng 1.5: Một số phương thức sử dụng trong socket không đồng bộ
Để chấp nhận kết nối bất đồng bộ ta sử dụng phương thức BeginAccept() và
EndAccept().
Để thiết lập kết nối theo cách bất đồng bộ chúng ta sử dụng phương thức
BeginConnect() và Endconnect().
Nhận dữ liệu với giao thức hướng kết nối ta sử dụng phương thức BeginReceive() và
EndReceive().
Gửi dữ liệu với giao thức hướng kết nối ta sử dụng phương thức BeginSend() và
EndSend(). Gửi dữ liệu bất đồng bộ với giao thức không hướng kết nối ta sử dụng phương
thức BeginSend() và EndSend().
Nhận dữ liệu bất đồng bộ với giao thức không hướng kết nối ta sử dụng phương thức
BeginReceiveFrom(), EndReceiveFrom().
Tên phương Mô tả
thức
Join () Buộc chương trình phải chờ cho thread kết thúc (Block) thì mới thực hiện
tiếp (các câu lệnh đứng sau Join).
Sleep () Là một phương thức tĩnh có tác dụng tạm dừng thread trong một khoảng
thời gian.
Start () Bắt đầu chạy (khởi động) một thread. Sau khi gọi phương thức này, trạng
thái của thread chuyển từ trạng thái hiện hành sang Running.
Suspend () Tạm ngừng thread. (phương thức này được loại khỏi phiên bản VS.NET
2005).
Bảng 1.6: Một số phương thức thường dùng trong Thread
IsAlive Trả về giá trị cho biết trạng thái thực thi của thread hiện hành.
IsBackground Sets or gets giá trị cho biết là thread là background hay foreground
thread.
Priority Sets or gets giá trị để chỉ định độ ưu tiên (dành nhiều hay ít CPU cho
thread). Cao nhất là 4, thấp nhất là 0.
Bảng 1.7: Một số thuộc tính thường dùng trong Thread
Tạo một tuyến trong C#
……...
Thread newThread = new Thread(new ThreadStart(new Method));
……...
Void newMothod(){
…
}
Sử dụng Thread trong các chương trình Server
- Đa tuyến hay được ứng dụng trong các chương trình Server, các chương trình đòi
hỏi tại một thời điểm chấp nhận nhiều kết nối đến từ các Client.
- Để các chương trình Server có thể xử lý nhiều Client tại một thời điểm ta có mô
hình ứng dụng đa tuyến như sau:
1.4.4. Chức năng hẹn giờ tắt, khởi động lại máy trạm
Chức năng này cho phép máy chủ thực hiện các thao tác như tắt máy, khởi động lại
máy trạm. Người dùng không những có thể thực hiện chức năng này trên một máy tính mà
còn có khả năng thao tác trên tất cả máy trạm.
Hình 3.3: Giao diện máy chủ khi khi có máy trạm kết nối
2.1.3. Xây dựng chức năng xem thông tin về cấu hình của các máy trạm
Là chức năng được xây dựng để cho máy chủ có thể xem chi tiết các thông tin về cấu
hình của máy trạm. Để thực hiện chức năng này, người quản trị chỉ cần thực hiện như sau:
1. Chọn máy trạm cần xem
2. Từ thanh menu công cụ chọn biểu tượng máy tính
3. Chọn các cửa sổ thông tin cần xem
Hình 3.3: Giao diện thông tin cơ bản của máy trạm
Hình 3.4: Giao diện thông tin hệ thống chi tiết của máy trạm
Hình 3.5: Giao diện thông tin kết nối mạng của máy trạm
Hình 3.6: Giao diện thông tin ổ đĩa trên máy trạm
2.1.4. Xây dựng chức năng xem mức sử dụng CPU, tốc độ mạng, RAM, ROM
Là chức năng cho phép máy chủ hiển thị mức sử dụng CPU, tốc độ mạng sử dụng,
mức sử dụng RAM, ROM. Để thực hiện chức năng này, ngừoi quản trị vào file chọn Task
Manager và chọn cửa sổ cần xem.
2.1.5. Xây dựng chức năng xem các tiến trình đang chạy và các phần mềm được cài đặt
trên máy trạm
Là chức năng giúp người quản trị theo dõi các tiến trình và các phần mềm được cài đặt
trên máy trạm.
Hình 3.10: Giao diện thông tin các tiến trình đang chạy trên máy trạm
Hình 3.11: Giao diện thông tin các phần mềm được cài đặt trên máy trạm
2.1.6. Xây dựng chức năng hẹn giờ tắt, khởi động lại máy trạm
Chức năng tắt máy trạm là chức năng được xây dựng cho người quản lý khi có nhu
cầu tắt hoặc khởi động lại các máy tính trạm. Với chức năng này người quản lý cần thực hiện
các bước sau:
Đồ án đã sử dụng các hàm có sẵn trong môi trường MS Visual Studio 2019 từ đó xây
dựng được ứng dụng quản lý năng lượng và tài nguyên phần cứng giữa máy chủ và máy
khách (Client-Server) theo giao thức TCP và thực hiện quản lý và xem thông tin các cấu hình
cũng như mức sử dụng bộ nhớ, tốc độ mạng của các máy tính trong mạng LAN. Đồ án đã đạt
được các yêu cầu đề ra như sau:
Về mặt lý thuyết:
o Hệ thống lại các kiến thức về mạng căn bản.
o Tìm hiểu phương pháp lập trình socket trên mạng LAN.
Về mặt thực nghiệm:
o Xây dựng được hệ thống quản lý năng lượng và tài nguyên máy tính trong
mạng LAN.
o Phần thực nghiệm mới chỉ dừng lại ở việc xây dựng một ứng dụng xem các
thông tin cơ bản hay thực hiện một số thao tác như hẹn giờ tắt và khởi động lại
của các máy tính trong mạng LAN thông qua việc truyền nhận các thông tin từ
máy trạm theo giao thức TCP.
Hướng phát triển trong tương lai:
Bên cạnh những chức năng đã được trình bày ở trên, hệ thống vẫn có nhiều điểm cần
hoàn thiện hơn trong tương lai, bổ sung một số chức năng khác và áp dụng những công nghệ
mới nhằm nâng hiệu suất cho hệ thống:
Thông báo cho máy chủ khi máy trạm chạy vượt quá mức CPU hay download
quá nhiều.
…
Qua thực nghiệm cho thấy hướng nghiên cứu có thể tiếp tục được nâng cấp để đưa vào
sử dụng, trước tiên là với các mô hình nhỏ dùng cho mạng cục bộ trong các phòng ban,
trường học, … Từ đó có thể phát triển và đưa vào sử dụng trên diện rộng nhằm tăng cường
việc quản lý các máy tính một cách thuận tiện và khoa học.
[2] Tên chủ sở hữu, Tên bài viết, url, ngày truy cập
PHỤ LỤC