lan_135hp

New Member

Download miễn phí Đồ án Tìm hiểu kỹ thuật mạng riêng ảo





MỤC LỤC

LỜI CẢM ƠN: 2

CHƯƠNG I: GIỚI THIỆU TỔNG QUAN 3

1. Mô tả hệ thống cần xây dựng 3

2. Tìm hiểu cơ chế hook trên window 3

3. Tìm hiểu lập trình mạng với C# 4

3.1. Tổng quan về C# 4

3.2. Tổng quan về .Net Framework 5

3.3. Cấu trúc của một chương trình C# 9

3.4. Lập trình mạng với C# 9

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

2.1 Cấu trúc chương trình 24

2.2 Phân tích và thiết kế các module chương trình 25

2.2.1 Mô tả chức năng modul kết nối và chấp nhận kết nối 25

2.2.2 Mô tả chức năng module truyền và nhận màn hình Desktop trên máy client về server 26

2.2.3 Mô tả chức năng module truyền và nhận các thồng tin điều khiển từ server. 26

2.2.4 Mô tả phân tích và thiết kế module chặn các thông điệp hệ thống 27

2.3 Phân tích và thiết kế lớp 30

2.3.1 Lớp tạo giao diện kết nối 30

2.3.2 Lớp giao diện chương trình: (InterfaceApplication) 32

2.4 Xây dựng chương trình Remote Desktop control 36

2.4.1 Xây dựng chương trình trên máy Server 36

2.4.2 Xây dựng chương trình trên máy client (chương trình phục vụ) 36

CHƯƠNG III: CHƯƠNG TRÌNH THỰC NGHIỆM 38

3.1 Một số giao diện chính. 38

3.2 KẾT LUẬN: 41

3.2.1. Kết quả đạt được 41

3.2.2. Hướng phát triển đề tài 41

Tài liệu tham khảo 42

 

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ketnooi -


Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


, int port)
IPEndPoint(IPAddress address, int port)
Cả hai constructors sử dụng 2 tham số: một giá trị IP, được thể hiện dưới dạng một giá trị long hay một đối tượng IPAddress; và một số hiệu cổng.
Method
Description
Create
Creates an EndPoint object from a SocketAddress object
Equals
Compares two IPEndPoint objects
GetHashCode
Returns a hash value for an IPEndPoint object
GetType
Returns the type of the IPEndPoint instance
Serialize
Creates a SocketAddress instance of the IPEndPoint instance
ToString
Creates a string representation of the IPEndPoint instance
Lớp SocketAddress là một lớp đặc biệt trong phạm vi namespace System.Net. Nó thể hiện một dạng khác của một đối tượng IPEndPoint. Lớp này có thể được sử dụng để lưu trữ một thực thể IPEndPoint, để sau đó có thể tạo lại một IPEndPoint bằng cách Create(). Định dạng của SocketAddress là:
1 byte trình bày AddressFamily của đối tượng.
1 byte thể hiện kích thước của đối tượng.
2 bytes là số hiệu cổng của đối tượng.
Những byte còn lại lưu trữ địa chỉ IP của đối tượng.
Ngoài các cách, lớp IPEndPoint còn bao gồm 3 thuộc tính có thể đọc/ghi từ một thực thể:
Address Gets or sets the IP address property
AddressFamily Gets the IP address family
Port Gets or sets the TCP or UDP port number
Các thuộc tính trên có thể được sử dụng với một thực thể IPEndPoint để đạt được các thông tin về các thành phần riêng lẻ của đối tượng IPEndPoint. Những thuộc tính địa chỉ và cổng cũng có thể được sử dụng để thiết lập những giá trị cụ thể trong phạm vi của một đối tượng IPEndPoint đã có.
MaxPort Giá trị cổng lớn nhất có thể chấp nhận được.
MinPort Giá trị cổng nhỏ nhất có thể chấp nhận được.
Sử dụng C# socket
Namespace System.Net.Sockets bao gồm những lớp cung cấp giao diện thực tới các hàm Winsock APIs ở mức thấp.
Socket Construction
Hạt nhân của namespace System.Net.Sockets là lớp Socket. Nó cung cấp cho trình quản lý C# đoạn mã thực thi của Winsock API. Constructor của lớp Socket là:
Socket(AddressFamily af, SocketType st,ProtocolType pt)
Định dạng cơ bản của Socket constructor tương tự như Unix socket. Nó sử dụng 3 tham số để định nghĩa kiểu của socket cần tạo:
AddressFamily để định nghĩa kiểu mạng.
SocketType để định nghĩa kiểu dữ liệu của kết nối.
ProtocolType định nghĩa giao thức mạng
Mỗi tham số trên có thể được sử dụng bằng các hằng được mô tả trong bảng dưới
SocketType
Protocoltype
Description
Dgram
Udp
Connectionless communication
Stream
Tcp
Connection-oriented communication
Raw
Icmp
Internet Control Message Protocol
Raw
Raw
Plain IP packet communication
Sử dụng những giá trị hằng giúp người lập trình dễ nhớ tất cả các tùy chọn, ví dụ:
Socket newsock = Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
Một vài thuộc tính của lớp Socket có thể được sử dụng để lấy ra các thông tin từ một đối tượng Socket đã được tạo. Những thuộc tính đó được mô tả trong bảng dưới:
Property
Description
AddressFamily
Gets the address family of the Socket
Available
Gets the amount of data that is ready to be read
Blocking
Gets or sets whether the Socket is in blocking mode
Connected
Gets a value that indicates if the Socket is connected to a remote device
Handle
Gets the operating system handle for the Socket
LocalEndPoint
Gets the local EndPoint object for the Socket
ProtocolType
Gets the protocol type of the Socket
RemoteEndPoint
Gets the remote EndPoint information for the Socket
SocketType
Gets the type of the Socket
b. Lập trình với C# Socket Helper Classes
.NET Framework hỗ trợ giao diện socket thông thường dành cho những người lập trình chuyên nghiệp và nó cũng cung cấp một giao diện đơn giản hơn giúp cho việc lập trình mạng trở nên dễ dàng hơn. Những giao diện lập trình mạng mới này giúp cho việc lập trình mạng trở nên đơn giản và thuận lợi hơn rất nhiều. Có 3 lớp đối tượng được sử dụng cho việc lập trình mạng với giao diện mới này là:
TcpClient
TcpListener
UdpClient
Mỗi lớp được thiết kế để hỗ trợ một socket đặc biệt phục vụ cho một chức năng của chương trình và giao diện lập trình trở nên đơn giản hơn cho các chức năng đó. Rõ ràng, lớp TcpClient và TcpListener được sử dụng cho việc tạo các chương trình TCP client và server; lớp UdpClient được sử dụng để tạo các chương trình UDP.
TcpClient
Những cách của lớp TcpClient được sử dụng để tạo những chương trình network client theo mô hình hướng kết nối. Những cách của lớp TcpClient giống như trong chương trình socket thông thường, nhưng nhiều bước đã được bó lại để đơn giản hơn cho người lập trình.
Để bắt đầu, có 3 bước để tạo một đối tượng TcpClient và kết nối nó tới một host ở xa, và mỗi bước đó được thiết kế để tạo ra một socket đơn giản hơn sử dụng các cách của lớp Socket thông thường.
Constructor mặc định tạo ra một socket trên bất kỳ cổng cục bộ nào có thể. Bạn có thể sử dụng cách Connect() để kết nối tới một host đặc biệt ở xa:
TcpClient newclient = new TcpClient();
newclient.Connect("www.isp.net", 8000);
Câu lệnh đầu tạo ra một đối tượng TcpClient mới và nối kết nó tới một địa chỉ và cổng cục bộ. Câu lệnh thứ hai kết nối socket tới một địa chỉ và số hiệu cổng của một host ở xa. Chú ý rằng địa chỉ host ở xa có thể sử dụng những kiểu đặc biệt như là địa chỉ DNS. Lớp TcpClient sẽ tự động cố gắng diễn giải tên DNS sang địa chỉ IP.
Một đối tượng đặc biệt EndPoint có thể được sử dụng với constructor thứ hai theo cách như sau:
IPAddress ia = Dns.GetHostByName(Dns.GetHostName()).AddressList[0];
IPEndPoint iep = new IPEndPoint(ia, 10232);
TcpClient newclient2 = new TcpClient(iep);
newclient2.Connect("www.isp.net", 8000);
Constructor thứ 3 là thông dụng nhất. Nó cho phép bạn kết nối với một host ở xa ngay trong hàm constructor và không cần gọi đến cách Connect():
TcpClient newclient3 = new TcpClient("www.isp.net", 8000);
Với một bước đơn giản, bạn đã tạo được một đối tượng TcpClient mới với một số cổng TCP ngẫu nhiên và kết nối nó tới một host ở xa.
Khi một thực thể TcpClient được tạo ra, bạn sẽ chắc chắn muốn gửi và nhận dữ liệu với nó. cách GetStream() được sử dụng để tạo ra một đối tượng NetworkStream cho phép bạn gửi và nhận các byte trên socket. Khi bạn có một thực thể NetworkStream cho socket, nó là một sự tách biệt để sử dụng dòng dữ liệu chuẩn để thông qua các cách Read() và Write() để di chuyển dữ liệu vào và ra trên một socket:
TcpClient newclient = new TcpClient("www.isp.net", 8000);
NetworkStream ns = newclient.GetStream();
byte[] outbytes = Encoding.ASCII.GetBytes("Testing");
ns.Write(outbytes, 0, outbytes.Length);
byte[] inbytes = new byte[1024];
ns.Read(inbytes, 0, inbytes.Length);
string instring = Encoding.ASCII.GetString(inbytes);
Console.WriteLine(instring);
ns.Close();
newclient.Close();'
TcpListener
Lớp TcpClient đơn giản là một client socket dành cho chương trình Client, lớp TcpListener đơn giản là dành cho chương trình server (một server socket); Những constructors của lớp này cũng đơn giản tương tự. Có 3 constructor có khuôn dạng như sau:
TcpListener(int port) : nối kết tới một cổng cục bộ
TcpListener(IPEndPoint ie) : kết nối tới một EndPoint cục bộ
TcpListener(IPAddress addr, int port) : kết nối tới một IPAddress và cổng cục bộ
Ba khuôn dạng trên cho phép bạn tạo ra các đối tượng TcpListener. Khi một đối tượng đã được tạo, bạn có thể bắt đầu lắng nghe cho kết nối mới bằng cách sử dụng cách Start().
Sau cách Start(), bạn phải sử dụng cách AcceptSocket() hay AcceptTcpClient() để chấp nhận một yêu cầu kết nối từ Client. Hai cách này, như tên của chúng, sẽ cho phép thành lập kết nối và trả về một đối tượng Socket hay TcpClient. Chúng ta đã thấy sự thuận tiện khi sử dụng lớp TcpListener, bởi vậy hầu hết chúng ta sẽ sử dụng cách AcceptTcpClient() để tạo ra một đối tượng TcpClient mới cho kết nối mới.
Khi một đối tượng TcpClient mới được tạo ra cho kết nối, bạn có thể tận dụng những cách chuẩn của TcpClient để bắt đầu giao tiếp với client. Một đoạn mã ví dụ đơn giản có thể giống như thế này:
TcpListener newserver = new TcpListener(9050);
newserver.Start();
TcpClient newclient = newserver.AcceptTcpClient();
NetworkStream ns = newclient.GetStream();
byte[] outbytes = Encoding.ASCII.GetBytes("Testing");
ns.Write(outbytes, 0, outbytes.Length);
byte[] inbytes = new byte[1024];
ns.Read(inbytes, 0, inbytes.Length);
string instring = Encoding.ASCII.GetString(inbytes);
Console.WriteLine(instring);
ns.Close();
newclient.Close();
newserver.Stop();
Chương trình này sẽ block tại cách AcceptTcpClient(), đợi cho một kết nối mới từ client. Khi kết nối được thành lập, cách GetStream() được sử dụng để tạo một đối tượng NetworkStream để đọc và viết dữ liệu tới socket đã được kết nối.
UdpClient
Đối với những ứng dụng yêu cầu một socket không hướng nối, lớp UdpClient cung cấp một giao diện đơn giản cho UDP sockets. Chúng ta đ...

 

Các chủ đề có liên quan khác

Top