1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

48 673 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 1,69 MB
File đính kèm Báo cáo + Code.rar (10 MB)

Nội dung

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.

Trang 1

MỤC LỤC

MỤC LỤC 1

DANH MỤC HÌNH ẢNH 5

DANH MỤC CÁC TỪ VIẾT TẮT 6

LỜI CẢM ƠN 7

A MỞ ĐẦU 8

1 Đặt vấn đề nghiên cứu 8

1.1 Sự cần thiết phải nghiên cứu 8

1.2 Căn cứ khoa học và thực tiễn 8

2 Mục tiêu nghiên cứu của đề tài 9

2.1 Mục tiêu chung 9

2.2 Mục tiêu cụ thể 10

3 Đối tượng và phạm vi nghiên cứu 10

3.1 Đối tượng nghiên cứu 10

3.2 Phạm vi nghiên cứu 10

4 Phương pháp nghiên cứu 10

B NỘI DUNG NGHIÊN CỨU: 12

CHƯƠNG I: TÌM HIỂU VỀ LẬP TRÌNH MẠNG 12

1.1 Tổng quan về lập trình mạng 12

1.1.1 Họ giao thức TCP/IP 12

1.1.2 So sánh 2 giao thức TCP và UDP 13

1.1.3 Địa chỉ IP 14

1.2 Lập trình mạng trong NET Framework 15

1.2.1 Cơ sở lý thuyết về NET 15

1.2.1.1 Nền tảng của NET 15

1.2.1.2 Ngôn ngữ C# 16

1.2.2 Sử dụng các lớp hỗ trợ được xây dựng từ lớp Socket 17

Trang 2

1.2.2.1 Lớp TCPClient 17

1.2.2.2 Lớp TCPListener 18

1.2.2.3 Lớp UDPClient 19

1.2.3 Socket không đồng bộ 20

1.2.3.1 Mô hình xử lý sự kiện của Windows 20

1.2.3.2 Sử dụng Socket không đồng bộ 21

1.2.4 Sử dụng Thread trong các ứng dụng mạng 25

1.2.4.1 Một số khái niệm 25

1.2.4.2 Sử dụng Thread trong chương trình Net 25

1.2.4.3 Sử dụng Threadpool trong các chương trình Net 27

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 28

2.1 Yêu cầu hệ thống 28

2.2 Các vấn đề cần giải quyết 28

2.3 Đặc tả chức năng của hệ thống 28

2.3.1 Chức năng chat với máy trạm 29

2.3.2 Chức năng gửi tệp tin đến máy trạm 29

2.3.3 Chức năng tắt máy trạm 29

2.3.4 Chức năng theo dõi màn hình máy trạm 29

2.3.5 Chức năng điều khiển máy trạm 29

2.3.6 Chức năng cấm ứng dụng 30

2.4 Phân tích thiết kế hệ thống 30

2.4.1 Xây dựng biểu đồ phân cấp chức năng 30

2.4.2 Xây dựng biểu đồ luồng dữ liệu 32

2.4.2.1 Xây dựng biểu đồ luồng dữ liệu mức khung cảnh 32

2.4.2.2 Xây dựng biểu đồ luồng dữ liệu mức đỉnh 32

2.4.2.3 Xây dựng biểu đồ luồng dữ liệu mức dưới đỉnh 32

CHƯƠNG 3: XÂY DỰNG PHẦN MỀM 34

Trang 3

3.1 Giới thiệu về phần mềm 34

3.2 Các tính năng của chương trình 34

3.2.1 Giao diện chính của chương trình 34

3.2.1.1 Lưu địa chỉ IP máy trạm của phiên làm việc trước 35

3.2.1.2 Phương thức truyền địa chỉ IP cho Form con 35

3.2.2 Chức năng tắt máy 35

3.2.3 Chat với máy trạm 36

3.2.4 Gửi tệp tin đến máy trạm 37

3.2.5 Xem/điều khiển máy trạm 37

3.2.6 Chức năng cấm ứng dụng 38

3.2.7 Chức năng phát hiện USB cắm vào máy trạm 39

3.3 Kiểm thử và bảo trì 39

C KẾT LUẬN CHUNG 42

1 Kết quả đạt được 42

1.1 Ưu điểm 42

1.2 Nhược điểm 42

1.3 Hướng phát triển 42

2 Tổng kết 43

D PHỤ LỤC 44

E TÀI LIỆU THAM KHẢO 50

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1.1 Mô hình tham chiếu và giao thức TCP/IP 13

Hình 1.2 Mô hình xử lý sự kiện trong Windows 21

Hình 2.1 Biểu đồ phân cấp chức năng 31

Hình 2.2 Biểu đồ luồng dữ liệu mức khung cảnh 32

Hình 2.3 Biểu đồ luồng dữ liệu mức đỉnh 32

Hình 2.4 Biểu đồ luồng dữ liệu mức đỉnh chức năng giám sát 33

Hình 2.5 Biểu đồ luồng dữ liệu mức đỉnh chức năng điều khiển 33

Hình 3.1 Giao diện cài đặt IP máy chủ trên máy Client 34

Hình 3.2 Giao diện chính của chương trình 35

Hình 3.3 Giao diện tính năng Chat với Client 36

Hình 3.4 Giao diện tính năng gửi tệp tin 37

Hình 3.5 Giao diện của chức năng xem/điều khiển máy trạm 38

Hình 3.6 Giao diện chức năng cấm ứng dụng 39

Trang 5

DANH MỤC CÁC TỪ VIẾT TẮT

TCP/IP Transmission Control Protocol/Internet Protocol

UDP User Datagram Protocol

IP Internet Protocol

OSI Open Systems Interconnection Reference Model

RIP Routing Information Protocol

OSPF Open Shortest Path First

BGP Border Gateway Protocol

FTP File Transfer Protocol

SMTP Simple Mail Transfer Protocol

DNS Domain Name System

LAN Local Area Network

WAN Wide Area Network

NTP Network Time Protocol

DNS Domain Name System

DHCP Dynamic Host Configuration Protocol

SNMP Simple Network Management Protocol

IANA Internet Assigned Numbers Authority

FCL Framework Class Library

IDE Intergrated Development Enviroment

XML eXtensible Markup Language

CLR Common Language Runtime

DLL Dynamic Link Library

RAM Random Access Memory

CPU Central Processing Unit

Trang 6

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íaquý 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ữngkinh 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ôngtrong công việc.

Em xin chân thành cảm ơn!

Sinh viên thực hiện:

Lê Minh Thành

Trang 7

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 trongcuộ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 internetcô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ư NetOpSchool, 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 đượcquan 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ínhtạ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ùngVươ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ụngcá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 haylà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ảmchấ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

Trang 8

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ỏnghó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ặttạ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ớicá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àmbài) khi hết giờ kiểm tra Trong thi cử, việc kiểm tra trắc nghiệm, phát đề thi vẫnthự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ìnhC# 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ệnnhữ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ắcnghiệ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óaUSB, 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

Trang 9

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àiphầ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ôngtin 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 ứngdụ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ạiphò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ùngVươ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ênquan 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

- Đề 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

Trang 10

- 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ênquan 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ảncủ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ứccủ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ầnmềm, cũng như khả năng ứng dụng của phần mềm được xây dựng trong đề tài

Trang 11

B NỘI DUNG NGHIÊN CỨU:

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ệudự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ểntệp (FTP), dịch vụ World Wide Web (WWW), thư điện tử (SMTP), dịch vụ tênmiề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ủacác nhà cung cấp thiết bị tính toán như AIX của IBM, SINIX của Siemens, DigitalUNIX của DEC), Windows9x/NT, NovellNetware, v.v

Trang 12

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 giaothứ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ácmụ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ôngtrạ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ượnglớ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 ứngdụ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ử) đồngthời chạy trên cùng một máy chủ

Khác nhau (cơ bản):

Trang 13

Các header của TCP và UDP khác nhau ở kích thước (20 và 8 byte) nguyên nhânchủ 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ụclỗ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

Đị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àomạng nhằm giúp cho các máy tính có thể chuyển thông tin cho nhau một cáchchí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ư địachỉ 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ảimộ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ị

Trang 14

đơn nhất trong phạm vi Internet toàn cầu, trong khi một số khác chỉ cần phải đơnnhấ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 gianlàm việc tổng hợp bởi bốn bộ ngôn ngữ lập trình: C#, VB.NET, Managed C++, andJ# NET ở đó có sự chồng gối lên nhau của các ngôn ngữ, và được định nghĩatrong FCL (framework class library)

Microsoft .Net bao gồm 2 phần chính: Framework và IntergratedDevelopment Enviroment (IDE) Framework cung cấp những gì cần thiết và cănbả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 tatriể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ôitrường, còn IDE chỉ là công cụ để phát triển dựa trên nền tảng đó thôi Trong NETtoà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ánthế 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)

Trang 15

- 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áttriể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òngthiết bị

- Nhiều công cụ hỗ trợ như Visual Studio NET, để phát triển các dịch vụ WebXML, ứ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ệumớ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 đặtnhư 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ậptin 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ớihạ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

Trang 16

đượ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ớpbao 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ộtassembly 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ânphố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ự độngcá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ạngngườ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 (transportcontrol 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:

TcpClient () Tạo một đối tượng TcpClient Chưa đặt thông

số gì

TcpClient (IPEndPoint) 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ề sau)

TcpClient (RemoteHost: String

Int32)

Tạo một đối tượng TcpClient và kết nối đến 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

Trang 17

chuẩn hoặc tên máy.

- Một số thuộc tính:

Available Cho biết số byte đã nhận về từ mạng và có sẵn để đọc

Client Trả về socket ứng với TCPClient hiện hành

Connected Trạng thái cho biết đã kết nối được đến server hay chưa ?

- Một số phương thức:

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

nối

Connect (RemoteHost,

Port)

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

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 ứngdụng server

Các thành phần của lớp TcpListen:

- Phương thức khởi tạo:

TcpListener (Port: Int32) Tạo một TcpListener và lắng nghe tại cổng chỉ địnhTcpListener (IPAddress,

Trang 18

Tên phương thức Mô tả

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

1.2.2.3 Lớp UDPClient

Giao thức UDP (User Datagram Protocol hay User Define Protocol) là mộtgiao 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ôngcầ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 giaothức TCP nhưng tốc độ của nó nhanh và dễ cài đặt ngoài ra, với giao thức UDP tacò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:

UdpClient () 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,

Trang 19

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ệnkhi sự kiện sảy ra trên Control

1.2.3.2 Sử dụng Socket không đồng bộ

Trang 20

Để lập trình không đồng bộ với Socket chúng ta sử dụng các phương thức choviệ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 đầubằ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

connection

EndAccept ()

BeginConnect () To connect to a remote host EndConnect ()

BeginReceive () To retrieve data from a socket EndReceive ()

BeginReceiveFrom () To retrieve data from a specific

remote host

EndReciveFrom()

BeginSend () To send data from a socket EndSend ()

BeginSendTo () To send data to a specific remote

host

EndSendTo ()

Để 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ươngthức BeginConnect() và EndConnect() như sau:

Trang 21

- Phương thức BeginConnect() và EndConnect().

Socket newsock = new Socket (AddressFamily.InterNetwork,

Trong đó phương thức Connected thường được viết như sau:

public static void Connected(IAsyncResult iar)

Để 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)

Trang 22

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,

Trang 23

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

Tuyến (Thread ): trong hệ thống một tiến trình có thể có một hoặc nhiều chuỗithự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:

Trang 24

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:

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

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

Ngày đăng: 17/05/2016, 15:22

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Bài giảng “Lập trình mạng nâng cao” (Trường Cao Đẳng Công Nghệ Thông Tin Hữu Nghị Việt – Hàn) Sách, tạp chí
Tiêu đề: Lập trình mạng nâng cao
[2]. Bài giảng “Lập trình truyền thông” (Đại Học Cần Thơ) Sách, tạp chí
Tiêu đề: Lập trình truyền thông
[3]. Website: www.congdongcviet.com caulacbovb .comTiếng Anh Khác
[1]. Network Programming in .NET with C# and VB.Net (Flach Reld) Khác
[2]. Website: www.codeproject.com Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Mô hình tham chiếu và giao thức TCP/IP - 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
Hình 1.1 Mô hình tham chiếu và giao thức TCP/IP (Trang 10)
Hình 1.2 Mô hình xử lý sự kiện trong Windows - 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
Hình 1.2 Mô hình xử lý sự kiện trong Windows (Trang 17)
Hình 2.1 Biểu đồ phân cấp chức năng - 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
Hình 2.1 Biểu đồ phân cấp chức năng (Trang 27)
Hình 2.3 Biểu đồ luồng dữ liệu mức đỉnh - 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
Hình 2.3 Biểu đồ luồng dữ liệu mức đỉnh (Trang 28)
Hình 2.2 Biểu đồ luồng dữ liệu mức khung cảnh - 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
Hình 2.2 Biểu đồ luồng dữ liệu mức khung cảnh (Trang 28)
Hình 2.5 Biểu đồ luồng dữ liệu mức đỉnh chức năng điều khiển - 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
Hình 2.5 Biểu đồ luồng dữ liệu mức đỉnh chức năng điều khiển (Trang 29)
Hình 2.4 Biểu đồ luồng dữ liệu mức đỉnh chức năng giám sát - 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
Hình 2.4 Biểu đồ luồng dữ liệu mức đỉnh chức năng giám sát (Trang 29)
Hình 3.1 Giao diện cài đặt IP máy chủ trên máy Client - 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
Hình 3.1 Giao diện cài đặt IP máy chủ trên máy Client (Trang 30)
Hình 3.3 Giao diện tính năng Chat với Client. - 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
Hình 3.3 Giao diện tính năng Chat với Client (Trang 32)
Hình 3.4 Giao diện tính năng gửi tệp tin. - 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
Hình 3.4 Giao diện tính năng gửi tệp tin (Trang 33)
Hình 3.5 Giao diện của chức năng xem/điều khiển máy trạm. - 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
Hình 3.5 Giao diện của chức năng xem/điều khiển máy trạm (Trang 34)
Hình 3.6 Giao diện chức năng cấm ứng dụng - 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
Hình 3.6 Giao diện chức năng cấm ứng dụng (Trang 35)

TỪ KHÓA LIÊN QUAN

w