Tải bản đầy đủ (.doc) (46 trang)

Báo cáo đề tài thực tập Phần mềm tùy chỉnh hệ thống máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.71 MB, 46 trang )

Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính

MỤC LỤC
MỤC LỤC..................................................................................................................1
DANH MỤC HÌNH ẢNH..........................................................................................2
DANH MỤC CÁC TỪ VIẾT TẮT............................................................................3
LỜI CẢM ƠN............................................................................................................4
A. MỞ ĐẦU...............................................................................................................5
B. NỘI DUNG NGHIÊN CỨU:................................................................................9
CHƯƠNG I: TÌM HIỂU VỀ LẬP TRÌNH MẠNG...................................................9
..................................................................................................................................10
..................................................................................................................................17
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.......................................24
CHƯƠNG 3: XÂY DỰNG PHẦN MỀM................................................................30
C. KẾT LUẬN CHUNG..........................................................................................38
D. PHỤ LỤC............................................................................................................40
E. TÀI LIỆU THAM KHẢO...................................................................................46

Sinh viên thực hiện: Lê Minh Thành

Trang 1


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính

DANH MỤC HÌNH ẢNH
Hình 1.1 Mô hình tham chiếu và giao thức TCP/IP.................................................10
Hình 1.2 Mô hình xử lý sự kiện trong Windows......................................................17
Hình 2.1 Biểu đồ phân cấp chức năng.....................................................................27
Hình 2.2 Biểu đồ luồng dữ liệu mức khung cảnh....................................................28
Hình 2.3 Biểu đồ luồng dữ liệu mức đỉnh................................................................28


Hình 2.4 Biểu đồ luồng dữ liệu mức đỉnh chức năng giám sát................................29
Hình 2.5 Biểu đồ luồng dữ liệu mức đỉnh chức năng điều khiển.............................29
Hình 3.1 Giao diện cài đặt IP máy chủ trên máy Client...........................................30
Hình 3.2 Giao diện chính của chương trình.............................................................31
Hình 3.3 Giao diện tính năng Chat với Client..........................................................32
Hình 3.4 Giao diện tính năng gửi tệp tin..................................................................33
Hình 3.5 Giao diện của chức năng xem/điều khiển máy trạm.................................34
Hình 3.6 Giao diện chức năng cấm ứng dụng..........................................................35

Sinh viên thực hiện: Lê Minh Thành

Trang 2


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính

DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt
TCP/IP
UDP
IP
OSI
RIP
OSPF
BGP
FTP
SMTP
DNS
LAN
WAN

NTP
DNS
DHCP
SNMP
IANA
FCL
IDE
XML
CLR
DLL
RAM
CPU

Từ tiếng anh
Transmission Control Protocol/Internet Protocol
User Datagram Protocol
Internet Protocol
Open Systems Interconnection Reference Model
Routing Information Protocol
Open Shortest Path First
Border Gateway Protocol
File Transfer Protocol
Simple Mail Transfer Protocol
Domain Name System
Local Area Network
Wide Area Network
Network Time Protocol
Domain Name System
Dynamic Host Configuration Protocol
Simple Network Management Protocol

Internet Assigned Numbers Authority
Framework Class Library
Intergrated Development Enviroment
eXtensible Markup Language
Common Language Runtime
Dynamic Link Library
Random Access Memory
Central Processing Unit

Sinh viên thực hiện: Lê Minh Thành

Trang 3


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính

LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn đến quý thầy, cô trường Đại học Hùng
Vương, những người đã trực tiếp giảng dạy, truyền đạt những kiến thức bổ ích cho
em, đó chính là những nền tảng cơ bản, là những hành trang vô cùng quý giá, là
bước đầu tiên cho em bước vào sự nghiệp sau này trong tương lai. Đặc biệt cảm ơn
thầy giáo hướng dẫn: Thạc sĩ Phạm Đức Thọ, giảng viên trường Đại học Hùng
Vương đã tận tình quan tâm, giúp đỡ em trong ba tháng qua, giải đáp những thắc
mắc trong suốt quá trình thực tập. Nhờ đó, em mới có thể hoàn thành được bài báo
cáo thực tập này.
Trong quá trình thực tập và làm báo cáo, vì chưa có kinh nghiệm thực tế, chỉ
dựa vào lý thuyết đã học cùng với thời gian hạn hẹp nên bài báo cáo chắc chắn sẽ
không tránh khỏi những sai sót. Kính mong nhận được sự góp ý, nhận xét từ phía
quý thầy, cô để kiến thức của em ngày càng hoàn thiện hơn và rút ra được những
kinh nghiệm bổ ích có thể áp dụng vào thực tiễn một cách hiệu quả trong tương lai.

Kính chúc mọi người luôn vui vẻ, hạnh phúc, dồi dào sức khỏe và thành công
trong công việc.
Em xin chân thành cảm ơn!
Sinh viên thực hiện:
Lê Minh Thành

Sinh viên thực hiện: Lê Minh Thành

Trang 4


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính

A. MỞ ĐẦU
1. Đặt vấn đề nghiên cứu
1.1. Sự cần thiết phải nghiên cứu
Trong cuộc sống hiện đại, sự bùng nổ công nghệ thông tin và truyền thông,
những thành tựu của nó đã có những ứng dụng lớn, trở thành một quan trọng trong
cuộc sống của chúng ta.
Từ yêu cầu mở rộng và phát triển công nghệ thông tin và giáo dục công nghệ
thông tin trong nhà trường và xã hội, các điểm máy tính công cộng ra đời với số
lượng máy tính trong mạng không ngừng tăng lên (các điểm truy nhập internet
công cộng, các phòng thực hành tin học ở các nhà trường, các hệ thống mạng nội
bộ của các công ty, công sở, v.v.). Theo xu hướng đó, các phần mềm quản lý hệ
thống mạng máy tính cục bộ trong các điểm máy tính công cộng ra đời, như NetOp
School, NetCafe, CSM, v.v.. Chúng tích hợp rất nhiều chức năng trong việc quản lý
một hệ thống mạng nội bộ với nhiều máy tính, nhưng chúng vẫn còn thiếu sót một
số chức năng về chống dữ liệu xâm nhập hoặc các chức năng này tương đối khó sử
dụng, không thuận tiện khi thao tác.
Chính vì vậy, việc nghiên cứu và xây dựng ứng dụng cụ thể để bảo vệ hệ

thống máy tính cá nhân trong mạng máy tính công cộng là một vấn đề cần được
quan tâm và phát triển, từ đó ứng dụng thực tế vào việc bảo vệ hệ thống máy tính
tại phòng thực hành tin học, trường Đại học Hùng Vương.
1.2. Căn cứ khoa học và thực tiễn
Thực tế cho thấy, tại phòng thực hành tin học của trường Đại học Hùng
Vương, trong hệ thống mạng cục bộ phục vụ dạy học, tình trạng các sinh viên có
thể dễ dàng sao chép dữ liệu bên ngoài vào máy tính một cách trái phép, sử dụng
các ứng dụng một cách tùy tiện, hiện tượng sinh viên chơi game, duyệt web hay
làm những việc không đúng với nội dung của giờ học vẫn tiếp tục diễn ra, gây giảm
chất lượng giờ học và sự tập trung của sinh viên trong các giờ học thực hành. Đặc

Sinh viên thực hiện: Lê Minh Thành

Trang 5


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
biệt, việc đưa vào hệ thống dữ liệu bất hợp pháp gây ra nhiều nguy cơ rủi ro tiềm
ẩn về an toàn hệ thống máy tính như việc nhiễm các mã độc, virus máy tính,
malware, v.v. ngay cả khi hệ thống được đóng băng, khiến cho việc bảo trì hệ
thống của người quản trị trở nên khó khăn và tốn chi phí, thời gian, nguy cơ hỏng
hóc tăng cao, nhất là khi người quản trị và bảo trì hệ thống không trực tiếp có mặt
tại các giờ học của sinh viên. Bên cạnh đó, mặc dù đã có một số biện pháp phòng
vệ được đưa ra để khắc phục tình trạng này nhưng chúng tỏ ra không hiệu quả với
các sinh viên chuyên ngành công nghệ thông tin. Các phần mềm bảo vệ này dễ
dàng bị sao chép, dịch ngược hay dò được mật khẩu quản trị, từ đó các sinh viên có
thể ngưng được phần mềm bảo vệ này và thực hiện việc đưa dữ liệu trái phép vào
hệ thống một cách dễ dàng. Việc kiểm tra và đánh giá trên phòng thực hành cũng
có nhiều đặc thù vì không thể kiểm soát được việc dừng nhập dữ liệu (tiếp tục làm
bài) khi hết giờ kiểm tra. Trong thi cử, việc kiểm tra trắc nghiệm, phát đề thi vẫn

thực hiện một cách thủ công, không có sự trợ giúp của máy móc.
2. Mục tiêu nghiên cứu của đề tài
2.1. Mục tiêu chung
- Nghiên cứu, tìm hiểu và hoàn thiện kiến thức ngành học về kỹ thuật lập trình
C# trên Windows.
- Quản lý các máy trạm trong hệ thống mạng máy tính.
- Giám sát máy trạm, tự động cảnh báo đến máy chủ khi sinh viên thực hiện
những hành vi trái phép như chơi game, vào web, v.v..
- Thực hiện các chức năng giảng dạy như trình diễn bài giảng, kiểm tra trắc
nghiệm, v.v..
- Điều khiển hay khóa một số chức năng của hệ thống máy trạm như khóa
USB, khóa mạng, chặn ứng dụng, v.v..
- Tạo ra một tài liệu có hệ thống, đầy đủ và hữu ích trong việc tham khảo.
- Tạo ra sản phẩm đáp ứng được những yêu cầu về an toàn và bảo mật.

Sinh viên thực hiện: Lê Minh Thành

Trang 6


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
2.2. Mục tiêu cụ thể
Đề tài được chia làm hai phần chính là phần báo cáo và phần sản phẩm. Ngoài
phần mở đầu, phần phụ lục và phần kết luận, báo cáo đề tài dày khoảng 50 trang, là
tập hợp những kiến thức về lập trình mạng bằng ngôn ngữ Visual C#. Những thông
tin này được cung cấp một cách đầy đủ, chi tiết, cách trình bày ngắn gọn, dễ hiểu.
Phần sản phẩm là một phần mềm được lập trình hoàn chỉnh, mang tính ứng
dụng cao nhằm quản lý và hỗ trợ giảng dạy cho giáo viên trong mạng máy tính tại
phòng máy thực hành nói chung và phòng thực hành tin học, trường đại học Hùng
Vương nói riêng.

3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng nghiên cứu
- Máy tính, hệ thống máy tính trong mạng cục bộ (LAN) và các kiến thức liên
quan về lập trình mạng.
- Công cụ lập trình Visual Studio 2008 (ngôn ngữ lập trình C#) trong lập trình
ứng dụng mạng.
3.2. Phạm vi nghiên cứu
Về nội dung:
- Các kiến thức về mạng máy tính.
- Các kiến thức về lập trình mạng trên hệ điều hành Windows.
Về không gian:
- Phòng máy trường học nói chung và phòng thực hành tin học trường Đại học
Hùng Vương nói riêng.
Về thời gian:
- Đề tài được thực hiện trong 3 tháng tính từ ngày 22/12/2013.
4. Phương pháp nghiên cứu

Sinh viên thực hiện: Lê Minh Thành

Trang 7


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
- Phương pháp nghiên cứu lý luận: Nghiên cứ tìm hiểu các tài liệu nghiên
cứu, giáo trình, báo viết và các nguồn thông tin có chọn lọc trên Internet có liên
quan tới lập trình mạng, cơ sở là ngôn ngữ lập trình C#.
- Phương pháp tổng kết kinh nghiệm: Từ việc nghiên cứu tài liệu, giáo trình
và tìm hiểu các nguồn thông tin, rút ra được các thuật toán và các điều khiển cơ bản
của ngôn ngữ lập trình trong việc lập trình mạng, tiến hành thử nghiệm phân tích,
xây dựng phần mềm và sửa lỗi phát sinh theo module.

- Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giảng viên trực tiếp hướng
dẫn và các chuyên gia khác để có thể hoàn thiện về mặt nội dung cũng như hình thức
của đề tài, nhằm đảm bảo tính đúng đắn, bảo mật và hoạt động chính xác của phần
mềm, cũng như khả năng ứng dụng của phần mềm được xây dựng trong đề tài.

Sinh viên thực hiện: Lê Minh Thành

Trang 8


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính

B. NỘI DUNG NGHIÊN CỨU:
CHƯƠNG I: TÌM HIỂU VỀ LẬP TRÌNH MẠNG
1.1. Tổng quan về lập trình mạng
1.1.1. Họ giao thức TCP/IP
IP là một họ giao thức để cung cấp phương tiện truyền thông liên mạng và nó
được cấu trúc theo kiểu phân cấp.
Khác với mô hình OSI tầng liên mạng sử dụng giao thức kết nối mạng "không
liên kết" (connectionless) IP, tạo thành hạt nhân hoạt động của Internet. Cùng với
các thuật toán định tuyến RIP, OSPF, BGP, tầng liên mạng IP cho phép kết nối một
cách mềm dẻo và linh hoạt các loại mạng "vật lý" khác nhau như: Ethernet, Token
Ring, X.25, v.v..
Giao thức trao đổi dữ liệu "có liên kết" (connection - oriented) TCP được sử
dụng ở tầng vận chuyển để đảm bảo tính chính xác và tin cậy việc trao đổi dữ liệu
dựa trên kiến trúc kết nối "không liên kết" ở tầng liên mạng IP.
Các giao thức hỗ trợ ứng dụng phổ biến như truy nhập từ xa (telnet), chuyển
tệp (FTP), dịch vụ World Wide Web (WWW), thư điện tử (SMTP), dịch vụ tên
miền (DNS) ngày càng được cài đặt phổ biến như những bộ phận cấu thành của các
hệ điều hành thông dụng như UNIX (và các hệ điều hành chuyên dụng cùng họ của

các nhà cung cấp thiết bị tính toán như AIX của IBM, SINIX của Siemens, Digital
UNIX của DEC), Windows9x/NT, NovellNetware, v.v..

Sinh viên thực hiện: Lê Minh Thành

Trang 9


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính

Hình 1.1 Mô hình tham chiếu và giao thức TCP/IP
1.1.2. So sánh 2 giao thức TCP và UDP
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của giao
thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gửi những dữ
liệu ngắn được gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy và
thứ tự truyền nhận mà TCP làm. Các gói dữ liệu có thể đến không đúng thứ tự hoặc
bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối với các
mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất không
trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với số lượng
lớn người yêu cầu.
TCP (Transmission Control Protocol - "Giao thức điều khiển truyền vận") là
một trong các giao thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng
dụng trên các máy chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó
chúng có thể trao đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao
dữ liệu tới nơi nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa
dữ liệu của nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng
thời chạy trên cùng một máy chủ.
Khác nhau (cơ bản):

Sinh viên thực hiện: Lê Minh Thành


Trang 10


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
Các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhân
chủ yếu là do TCP phải hộ trợ nhiều chức năng hữu ích hơn(như khả năng khôi phục
lỗi). UDP dùng ít byte hơn cho phần header và yêu cầu xử lý từ host ít hơn.
TCP:
- Dùng cho mạng WAN.
- Không cho phép mất gói tin.
- Đảm bảo việc truyền dữ liệu.
- Tốc độ truyền thấp hơn UDP
UDP:
- Dùng cho mạng LAN.
- Cho phép mất dữ liệu.
- Không đảm bảo.
- Tốc độ truyền cao, VolP truyền tốt qua UDP
1.1.3. Địa chỉ IP
Địa chỉ IP (IP là viết tắt của từ tiếng Anh: Internet Protocol - giao thức Internet)
là một địa chỉ đơn nhất mà những thiết bị điện tử hiện nay đang sử dụng để nhận diện
và liên lạc với nhau trên mạng máy tính bằng cách sử dụng giao thức Internet.
Một cách đơn giản hơn: IP là một địa chỉ của một máy tính khi tham gia vào
mạng nhằm giúp cho các máy tính có thể chuyển thông tin cho nhau một cách
chính xác, tránh thất lạc. Có thể coi địa chỉ IP trong mạng máy tính giống như địa
chỉ nhà của bạn để nhân viên bưu điện có thể đưa thư đúng cho bạn chứ không phải
một người nào khác.
Bất kỳ thiết bị mạng nào, bao gồm bộ định tuyến, bộ chuyển mạch mạng, máy
vi tính, máy chủ hạ tầng (như NTP, DNS, DHCP, SNMP, v.v.), máy in, máy fax
qua Internet, và vài loại điện thoại khi tham gia vào mạng đều có địa chỉ riêng và

địa chỉ này là đơn nhất trong phạm vi của một mạng cụ thể. Vài địa chỉ IP có giá trị

Sinh viên thực hiện: Lê Minh Thành

Trang 11


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
đơn nhất trong phạm vi Internet toàn cầu, trong khi một số khác chỉ cần phải đơn
nhất trong phạm vi một công ty.
Địa chỉ IP do Tổ chức cấp phát số hiệu Internet (IANA) quản lý và tạo ra.
IANA nói chung phân chia những "siêu khối" đến Cơ quan Internet khu vực, rồi từ
đó lại phân chia thành những khối nhỏ hơn đến nhà cung cấp dịch vụ Internet và
công ty.
1.2. Lập trình mạng trong .NET Framework
1.2.1. Cơ sở lý thuyết về .NET
1.2.1.1. Nền tảng của .NET
Microsoft .Net không phải là một ngôn ngữ lập trình, đó là một không gian
làm việc tổng hợp bởi bốn bộ ngôn ngữ lập trình: C#, VB.NET, Managed C++, and
J# .NET. ở đó có sự chồng gối lên nhau của các ngôn ngữ, và được định nghĩa
trong FCL (framework class library).
Microsoft .Net bao gồm 2 phần chính: Framework và Intergrated
Development Enviroment (IDE). Framework cung cấp những gì cần thiết và căn
bản, là khuôn dạng hay môi trường hỗ trợ các hạ tầng cơ sở theo một quy ước nhất
định để công việc được thuận tiện. IDE cung cấp một môi trường giúp chúng ta
triển khai dễ dàng và được nhanh chóng các ứng dụng dựa trên nền tảng .Net.
Thành phần Framework là quan trọng nhất .NET là cốt lõi và tinh hoa của môi
trường, còn IDE chỉ là công cụ để phát triển dựa trên nền tảng đó thôi. Trong .NET
toàn bộ các ngôn ngữ C#, Visual C++ hay Visual Basic.NET đều dùng cùng một IDE.
Microsoft .NET là nền tảng cho việc xây dựng và thực thi các ứng dụng phân tán

thế hệ kế tiếp. Bao gồm các ứng dụng từ client đến server và các dịch vụ khác. Một số
tính năng của Microsoft .NET cho phép những nhà phát triển sử dụng như sau:
- Một mô hình lập trình cho phép nhà phát triển xây dựng các ứng dụng dịch
vụ web và ứng dụng client với Extensible Markup Language (XML).

Sinh viên thực hiện: Lê Minh Thành

Trang 12


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
- Tập hợp dịch vụ XML Web, như Microsoft .NET My Services cho phép nhà
phát triển đơn giản và tích hợp người dùng kinh nghiệm.
- Cung cấp các server phục vụ bao gồm: Windows 2000, SQL Server, và
BizTalk Server, tất cả điều tích hợp, hoạt động, và quản lý các dịch vụ XML Web
và các ứng dụng.
- Các phần mềm client như Windows XP và Windows CE giúp người phát
triển phân phối sâu và thuyết phục người dùng kinh nghiệm thông qua các dòng
thiết bị.
- Nhiều công cụ hỗ trợ như Visual Studio .NET, để phát triển các dịch vụ Web
XML, ứng dụng trên nền Windows hay nền web một cách dể dàng và hiệu quả.
1.2.1.2. Ngôn ngữ C#
C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khoá và hơn mười kiểu dữ
liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hỗ trợ lập trình có cấu trúc, hướng
đối tượng, hướng thành phần (component oriented).
Trọng tâm của ngôn ngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ liệu
mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết. C# có những từ khoá
dành cho việc khai báo lớp, phương thức, thuộc tính (property) mới. C# hỗ trợ đầy đủ
khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình.
Định nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài đặt

như C++. Hơn thế, C# hỗ trợ kiểu sưu liệu mới, cho phép sưu liệu trực tiếp trong tập
tin mã nguồn. Đến khi biên dịch sẽ tạo tập tin sưu liệu theo định dạng XML.
C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java). Một lớp chỉ có thể
kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện.
C# có kiểu cấu trúc, struct (không giống C++). Cấu trúc là kiểu hạng nhẹ và bị giới
hạn.Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặt giao diện.
C# cung cấp những đặc trưng lập trình hướng thành phần như property, sự
kiện và dẫn hướng khai báo (được gọi là attribute). Lập trình hướng component

Sinh viên thực hiện: Lê Minh Thành

Trang 13


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata). Siêu dữ liệu mô tả các lớp
bao gồm các phương thức và thuộc tính, các thông tin bảo mật.
Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viên là
các thư viện liên kết động (DLL) hay tập tin thực thi (EXE). Trong .NET một
assembly là một đơn vị của việc tái sử dụng, xác định phiên bản, bảo mật, và phân
phối. CLR cung cấp một số các lớp để thao tác với assembly.
C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng mã
đó được xem như không an toàn. CLR sẽ không thực thi việc thu dọn rác tự động
các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải phóng.
1.2.2. Sử dụng các lớp hỗ trợ được xây dựng từ lớp Socket
1.2.2.1. Lớp TCPClient
Dùng giao thức này thì hai bên không cần phải thiết lập kết nối trước khi gửi
do vậy mức dộ tin cậy không cao. Để đảm bảo độ tin cậy trong các ứng dụng mạng
người ta còn sử dụng một giao thức khác gọi là giao thức có kết nối: TCP (transport
control protocol). Để lập trình theo giao thức TCP, MS.NET cung cấp hai lớp có

tên là TCPClient và TCPListener.
Các thành phần của lớp TcpClient
- Phương thức khởi tạo:
Tên phương thức
TcpClient ()

Mô tả
Tạo một đối tượng TcpClient. Chưa đặt thông

TcpClient (IPEndPoint)

số gì.
Tạo một TcpClient và gắn cho nó một
EndPoint 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ề

TcpClient (RemoteHost: String

sau).
Tạo một đối tượng TcpClient và kết nối đến

Int32)

một máy có địa chỉ và số hiệu cổng được
truyền vào. RemoteHost có thể là địa chỉ IP

Sinh viên thực hiện: Lê Minh Thành

Trang 14



Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
chuẩn hoặc tên máy.
- Một số thuộc tính:
Tên thuộc tính
Available
Client
Connected

Mô tả
Cho biết số byte đã nhận về từ mạng và có sẵn để đọc.
Trả về socket ứng với TCPClient hiện hành.
Trạng thái cho biết đã kết nối được đến server hay chưa ?

- Một số phương thức:
Tên phương thức
Close

Mô tả
Giải phóng đối tượng TcpClient nhưng không đóng kết

Connect (RemoteHost,

nối.
Kết nối đến một máy TCP khác có tên và số hiệu cổng.

Port)
GetStream

Trả về NetworkStream để từ đó giúp ta gửi hay nhận dữ

liệu. (thường làm tham số khi tạo StreamReader và
StreamWriter).
Khi đã gắn vào StreamReader vá StreamWriter rồi thì
ta có thể gửi và nhận dữ liệu thông qua các phương
thức Readln, writeline tương ứng của các lớp này.

1.2.2.2. Lớp TCPListener
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.
Các thành phần của lớp TcpListen:
- Phương thức khởi tạo:
Tên phương thức
TcpListener (Port: Int32)
TcpListener (IPAddress,

Mô tả
Tạo một TcpListener và lắng nghe tại cổng chỉ định
Tạo một TcpListener và lắng nghe các kết nối đến tại

Int32)
địa chỉ IP và cổng chỉ định.
TcpListener (IPEndPoint) Tạo một TcpListener với giá trị EndPoint truyền vào.
- Các phương thức khác:
Sinh viên thực hiện: Lê Minh Thành

Trang 15


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
Tên phương thức

AcceptTcpClient
AcceptSocket
Pending
Start
Stop
1.2.2.3. Lớp UDPClient

Mô tả
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).
Chấp nhận một yêu cầu kết nối đang chờ.
Cho biết có kết nối nào đang chờ đợi không? (True = có).
Bắt đầu lắng nghe các yêu cầu kết nối.
Dừng việc nghe.

Giao thức UDP (User Datagram Protocol hay User Define Protocol) là một
giao thức phi kết nối có nghĩa là một bên có thể gửi dữ liệu cho bên kia mà không
cần biết là bên đó có sẵn sàng hay chưa? Giao thức này không tin cậy bằng giao
thức TCP nhưng tốc độ của nó nhanh và dễ cài đặt. ngoài ra, với giao thức UDP ta
còn có thể gửi được gói tin quảng bá đến nhiều máy.
Trong .NET, lớp UDPClient đóng gói các chức năng của giao thức UDP.
- Phương thức khởi tạo:
Tên phương thức
UdpClient ()

Mô tả
Tạo một đối tượng (thể hiện) mới của lớp
UDPClient.

UdpClient (AddressFamily)


Tạo một đối tượng mới của lớp UDPClient. Thuộc
một dòng địa chỉ được chỉ định.

UdpClient (Int32)

Tạo một UdpClient và gắn một cổng cho nó.

UdpClient (IPEndPoint)

Tạo một UdpClient và gắn một IPEndPoint cho nó.

UdpClient (Int32,

Tạo một UdpClient và gắn số hiệu cổng,

AddressFamily)

AddressFamily.

UdpClient (String, Int32)

Tạo một UdpClient và thiết lập với một máy trạm
từ xa mặc định.

- Các phương thức khác:
Phương thức

Sinh viên thực hiện: Lê Minh Thành


Mô tả

Trang 16


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
BeginReceive

Nhận dữ liệu không đồng bộ từ máy tính từ xa.

BeginSend

Gửi không đồng bộ dữ liệu tới máy ở xa.

Close

Đóng kết nối.

Connect

Thiết lập một default remote host.

EndReceive

Kết thúc nhận dữ liệu không đồng bộ ở trên.

EndSend

Kết thúc việc gửi dữ liệu không đồng bộ ở trên.


Receive

Nhận dữ liệu (đồng bộ) do máy tính ở xa gửi.

Send

Gửi dữ liệu (đồng bộ) cho máy ở xa.

1.2.3. Socket không đồng bộ
1.2.3.1. Mô hình xử lý sự kiện của Windows
Mô hình sử lý sự kiện được thể hiện qua mô hình sau:

Hình 1.2 Mô hình xử lý sự kiện trong Windows
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 sảy ra trên Control.
1.2.3.2. Sử dụng Socket không đồng bộ
Sinh viên thực hiện: Lê Minh Thành

Trang 17


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
Để lập trình không đồng bộ với Socket chúng ta sử dụng các phương thức cho
việc sử dụng bất đồng bộ.
Các phương thức cho việc lập trình bất đồng được chia làm 2 loại bắt đầu
bằng Begin và End:
- Phương thức bắt đầu bằng Begin, bắt đầu một chức năng và được đăng ký
với phương thức AsyncCallback.
- Bắt đầu bằng End chỉ chức năng hoàn thành khi AsyncCallback đươc gọi.
Requests Started By Description of Request


Requests Ended BY …


BeginAccept ()

To accept an incoming

EndAccept ()

connection
BeginConnect ()

To connect to a remote host

EndConnect ()

BeginReceive ()

To retrieve data from a socket

EndReceive ()

BeginReceiveFrom ()

To retrieve data from a specific

EndReciveFrom()

remote host

BeginSend ()

To send data from a socket

EndSend ()

BeginSendTo ()

To send data to a specific remote EndSendTo ()
host

Để chấp nhận kết nối bất đồng bộ ta sử dụng phương thức BeginAccept() và
EndAccept() như sau:
- Phương thức BeginAccept() và EndAccept().
IAsyncResult BeginAccept(AsyncCallback callback, object state)
Socket EndAccept(IAsyncResult iar);

Để thiết lập phương thức kết nối theo cách bất đồng bộ ta sử dụng phương
thức BeginConnect() và EndConnect() như sau:

Sinh viên thực hiện: Lê Minh Thành

Trang 18


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
- Phương thức BeginConnect() và EndConnect().
Socket newsock = new Socket (AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
IPEndPoint iep =new IPEndPoint(IPAddress.Parse("127.0.0.1"),

9050);
newsock.BeginConnect (iep, new AsyncCallback (Connected),
newsock);

Trong đó phương thức Connected thường được viết như sau:
public static void Connected(IAsyncResult iar)
{
Socket sock = (Socket)iar.AsyncState;
try
{
sock.EndConnect(iar);
}
catch (SocketException)
{
Console.WriteLine("Unable to connect to host");
}
}

Để gửi dữ liệu bất đồng bộ chúng ta làm như sau:
- Phương thức BeginSend() và EndSend().
BeginSend()
IAsyncResult BeginSend(byte[] buffer, int offset, int size,
SocketFlags sockflag, AsyncCallback callback, object state)
EndSend()
int EndSend(IAsyncResult iar)

- Trong đó phương thức SendData thường được viết như sau:
private static void SendData(IAsyncResult iar)

Sinh viên thực hiện: Lê Minh Thành


Trang 19


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
{
Socket server = (Socket)iar.AsyncState;
int sent = server.EndSend(iar);
}

Tương tự như giao thức hướng kết nối nếu ta sử dụng gửi dữ liệu theo giao
thức không hướng kết nối chúng ta cũng thực hiện tương tự như sau:
- Phương thức BeginSendTo() và EndSendTo().
IAsyncResult BeginSendTo(byte[] buffer, int offset, int size,
SocketFlags sockflag, EndPoint ep, AsyncCallback callback, object
state);

Để nhận dữ liệu bất đồng bộ ta thực hiện như sau:
Nhận dữ liệu với giao thức hướng kết nối:
- Phương thức BeginRecieve và EndRecive()
sock.BeginReceive(data, 0, data.Length, SocketFlags.None, new
AsyncCallback(ReceivedData), sock);

Với ReceivedData được định nghĩa như sau:
void ReceivedData(IAsyncResult iar)
{
Socket remote = (Socket)iar.AsyncState;
int recv = remote.EndReceive(iar);
string receivedData = Encoding.ASCII.GetString(data, 0,
recv);

Console.WriteLine(receivedData);
}

Nhận dữ liệu bất đồng bộ với giao thức không hướng kết nối

Sinh viên thực hiện: Lê Minh Thành

Trang 20


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
- Phương thức BeginReceiveFrom() và EndReceiveFrom()
sock.BeginReceive(data,0,data.Length,SocketFlags.None,refiep,new
AsyncCallback (ReceiveData) , sock);
void ReceiveData(IasyncResult iar)
{
Socket remote = (Socket)iar.AsyncState;
int recv = remote.EndReceiveFrom(iar);
string stringData = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringData);
}

1.2.4. Sử dụng Thread trong các ứng dụng mạng
1.2.4.1. Một số khái niệm
Đa nhiệm (Multitasking): là khả năng hệ điều hành làm nhiều công việc tại
một thời điểm.
Tiến trình (Process): khi chạy một ứng dụng hệ điều hành sẽ cấp phát riêng
cho ứng dụng đó bộ nhớ và các tài nguyên khác. Bộ nhớ và tài nguyên vật lý riêng
biệt này được gọi là một tiến trình. Các tài nguyên và bộ nhớ của một tiến trình thì
chỉ tiến trình đó được phép truy cập.

Tuyến (Thread ): trong hệ thống một tiến trình có thể có một hoặc nhiều chuỗi
thực hiện tách biệt khác nhau và có thể chạy đồng thời. mỗi chuỗi thực hiện này
được gọi là 1 tuyến (Thread). Trong 1 ứng dụng Thread khởi tạo đầu tiên gọi là
Thread sơ cấp hay Thread chính.
1.2.4.2. Sử dụng Thread trong chương trình .Net
Để sử dụng Thread trong .NET ta sử dụng namespace System.Threading.
Một số phương thức thường dùng:
Tên phương thức
Sinh viên thực hiện: Lê Minh Thành

Mô tả
Trang 21


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
Abort ()

Kết thúc Thread.

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).

Resume ()

Tiếp tục chạy thread đã tạm ngừng – suspended.

Sleep ()


Static method: 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).

Một số thuộc tính thường dùng:
Tên thuộc tính

Mô tả

CurrentThread

This static property: trả về thread hiện hành đang chạy.

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.

IsThreadPoolThread

Gets a value indicating whether a thread is part of a thread
pool.

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.

ThreadState

Lấy về trạng thái của thread (đang dừng, hay đang chạy…).

Sinh viên thực hiện: Lê Minh Thành

Trang 22


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
1.2.4.3. Sử dụng Threadpool trong các chương trình .Net
Phương thức
BindHandle ()

Mô tả
Binds an operating system handle to the
thread pool


GetAvailableThreads()

Gets the number of worker threads
available for use in the thread pool

GetMaxThreads ()

Gets the maximum number of worker
threads available in the thread pool

QueueUserWorkItem ()

Queues a user delegate waiting for a
WaitHandle object

UnsafeQueueUserWorkItem ()

Queues an unsafe user delegate to the
thread pool but does not propagate the
calling stack onto the worker thread

UnsafeRegisterWaitForSingleObject ()

Registers an unsafe delegate waiting for
a WaitHandle object

Sinh viên thực hiện: Lê Minh Thành

Trang 23



Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1. Yêu cầu hệ thống
Để chạy được phần mềm này, máy tính cần phải đạt được những yêu cầu sau:
- Máy tính phải được cài đặt .NET Framework 3.5.
- Sử dụng hệ điều hành Windows (Windows 98, Windows XP, Windows
Vista, v.v.).
Cấu hình tối thiểu:
- RAM:128Mb trở lên.
- CPU: Pentium 3 trở lên.
- Ổ cứng trống: Tối thiểu là 50Mb.
Cấu hình đề nghị:
- RAM: 256Mb trở lên.
- CPU: Pentium 4 trở lên.
- Ổ cứng trống: Tối thiểu là 100Mb.
2.2. Các vấn đề cần giải quyết
- Thiết kế giao diện trên máy chủ sao cho hợp lý và dễ sử dụng.
- Giao diện máy trạm phải được thiết kế đơn giản hoặc không có giao diện.
- Máy chủ có thể quản lý được nhiều máy trạm cùng lúc (ví dụ có thể gửi tin
nhắn, tệp tin đồng thời đến tất cả máy trạm).
- Chương trình phải luôn chạy ngầm trên các máy trạm mỗi khi khởi động để
tiện cho việc quản lý.
- Có thể theo dõi được các máy trạm, nếu máy trạm thực hiện những hành vi
trái phép thì phải cảnh báo đến máy chủ.
- Nhận diện được các thiết bị cắm vào máy trạm (ví dụ USB hay ổ cứng di
động, v.v.) và cảnh báo đến máy chủ.
- Chương trình tự động dò địa chỉ IP máy chủ và đăng nhập vào hệ thống.
2.3. Đặc tả chức năng của hệ thống


Sinh viên thực hiện: Lê Minh Thành

Trang 24


Đề tài thực tập: Phần mềm tùy chỉnh hệ thống máy tính
2.3.1. Chức năng chat với máy trạm.
Chức năng này cho phép máy chủ và máy trạm có thể “trò chuyện” được với
nhau thông qua mạng LAN. Để thực hiện chức năng này, máy chủ và máy trạm cần
phải được kết nối với nhau thông qua một cổng kết nối chung và thông qua địa chỉ
IP. Trong quá trình gửi tin nhắn, dữ liệu được mã hóa và truyền theo từng bit dưới
dạng mã nhị phân. Máy tính nhận được tin nhắn sẽ giải mã thông tin gửi đến và
tổng hợp lại để tạo thành một tin nhắn hoàn chỉnh.
2.3.2. Chức năng gửi tệp tin đến máy trạm
Cơ chế hoạt động của chức năng này cũng tương tự như chức năng chat với
máy trạm. Người dùng chỉ cần chọn đường dẫn tệp tin cần gửi và bấm nút gửi để
thực hiện quá trình gửi tệp tin.
2.3.3. Chức năng tắt 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, Stanby
hay Log Off, v.v. 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.
2.3.4. Chức năng theo dõi màn hình máy trạm
Chức năng này cho phép người dùng có thể theo dõi được màn hình của máy
trạm. Để thực hiện chức năng này, máy chủ và máy trạm cũng cần phải kết nối với
nhau thông qua một cổng kết nối chung và thông qua địa chỉ IP (giống với chức năng
chat và gửi tệp tin). Sau khi hai máy đã kết nối thành công, bên máy trạm sẽ liên tục
gửi ảnh chụp màn hình dưới dạng bitmap tới máy chủ. Bên máy chủ sẽ nhận ảnh được
gửi từ máy trạm và liên tục tải lại ảnh mới vào một PictureBox đã tạo sẵn. Quá trình
tải lại ảnh này cũng gần giống với cơ chế hoạt động của các loại màn hình tivi, máy

tính hiện nay. Mặc dù thời gian tải lại ảnh rất nhanh nhưng vẫn xảy ra hiện tượng bi
giật hình do tốc độ đường truyền và do tốc độ xử lý của máy tính.
2.3.5. Chức năng điều khiển máy trạm

Sinh viên thực hiện: Lê Minh Thành

Trang 25


×