XÂy dựng chương trình remote desktop

47 454 0
XÂy dựng chương trình remote desktop

Đ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

Xây dựng chương trình Remote Desktop LỜI MỞ ĐẦU Sự phát triển như vũ bão của ngành công nghệ thông tin kéo theo đó là các dịch vụ mạng ngày càng phát triển, mở rộng và hoàn thiện hơn, tuy vẫn tồn tại nhiều khuyết điểm song không ít tiện lợi từ công nghệ đem lại cho xã hội loài người sự nhanh chóng và chính xác Thư điện tử dần thay thế thư tay, các cuộc hội nghị truyền hình với âm thanh hình ảnh trực tiếp giúp linh hoạt hóa công việc của tổ chức, đoàn thể. Người bác sĩ không phải trực tiếp đứng tại phòng mổ vẫn có thể thực hiện ca phẫu thuật với sự chính xác cao, và độ an toàn tuyệt đối… còn rất nhiều lợi ích mà công nghệ thông tin đem lại cho chúng ta, vậy dựa vào đâu mà công nghệ có thể thực hiện được những điều tưởng chừng không thể trong một tích tắc như vậy? Ngôn ngữ lập trình là một phần không thể thiếu trong việc xây dựng nên một thế giới công nghệ linh hoạt và mạnh mẽ. Không gian làm việc Microsoft .Net 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). Hỗ trợ cho lập trình viên phát triển các ứng dụng mạng với kích thước nhẹ và mạnh mẽ trong xử lý. Dựa trên kiến thức lập trình mạng với C#, sự đa dạng của các dịch vụ mạng với nhiều tính năng và đòi hỏi ngày càng cao. Từ ý tưởng xây dựng một chương trình có khả năng tương tác với máy tính từ xa thông qua hệ thống mạng, chương trình Remote desktop được xây dựng, dựa theo mô hình Client-Server hỗ trợ các tính năng cơ bản tương tác với máy tính từ xa như tắt máy, khởi động lại máy, ngủ đông, khóa máy, chạy một số ứng dụng, gửi thông điệp, gửi một file hay lấy 1 file từ máy đang điều khiển… sử dụng ngôn ngữ lập trình C#. Trong quá trình xây dựng chương trình không tránh khỏi sai sót kính mong các thầy cô và các bạn đóng góp ý kiến xây dựng để nhóm hoàn thiện hơn. Nhóm 2_MM02A CHƯƠNG 3 CƠ SỞ LÝ THUYẾT VỀ .NET 2 Lập Trình Mạng Nâng Cao Trang 1 Xây dựng chương trình Remote Desktop CHƯƠNG 2 : LẬP TRÌNH MẠNG TRONG .NET FRAMEWORK 7 2.1 Sử dụng các lớp hỗ trợ được xây dựng từ lớp Socket 7 2.2. Socket không đồng bộ 10 2.3. Sử dụng Thread trong các ứng dụng mạng 14 CHƯƠNG 3: CHƯƠNG TRÌNH REMOTE DESKTOP 18 3.1. iới thiệu giao thức Remote Desktop: 18 3.2. cơ chế hoạt động của Remote Desktop: 19 3.3. Chương trình: 23 3.4. Hướng dẫn sử dụng 42 KÊT LUẬN 46 TÀI LIỆU THAM KHẢO 47 CHƯƠNG 3 CƠ SỞ LÝ THUYẾT VỀ .NET 1.1. Giới thiệu về ngôn ngữ C#: 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. Lập Trình Mạng Nâng Cao Trang 2 Xây dựng chương trình Remote Desktop 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). • 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ả. Lập Trình Mạng Nâng Cao Trang 3 Xây dựng chương trình Remote Desktop 1.2. Kiến trúc .Net Mô hình kiến trúc của .Net: .NET Framework là một platform mới làm đơn giản việc phát triển ứng dụng trong môi trường phân tán của Internet. .NET Framework được thiết kế đầy đủ để đáp ứng theo quan điểm sau: Để cung cấp một môi trường lập trình hướng đối tượng vững chắc, trong đó mã nguồn đối tượng được lưu trữ và thực thi một cách cục bộ. Thực thi cục bộ nhưng được phân tán trên Internet, hoặc thực thi từ xa. Để cung cấp một môi trường thực thi mã nguồn mà tối thiểu được việc đóng gói phần mềm và sự tranh chấp về phiên bản. Để cung cấp một môi trường thực thi mã nguồn mà đảm bảo việc thực thi an toàn mã nguồn, bao gồm cả việc mã nguồn được tạo bởi hãng thứ ba hay bất cứ hãng nào mà tuân thủ theo kiến trúc .NET. Để cung cấp một môi trường thực thi mã nguồn mà loại bỏ được những lỗi thực hiện các script hay môi trường thông dịch. Lập Trình Mạng Nâng Cao Trang 4 Xây dựng chương trình Remote Desktop Để làm cho những người phát triển có kinh nghiệm vững chắc có thể nắm vững nhiều kiểu ứng dụng khác nhau. Như là từ những ứng dụng trên nền Windows đến những ứng dụng dựa trên web. Để xây dựng tất cả các thông tin dựa triên tiêu chuẩn công nghiệp để đảm bảo rằng mã nguồn trên .NET có thể tích hợp với bất cứ mã nguồn khác. .NET Framework có hai thành phần chính: Common Language Runtime (CLR) và thư viện lớp .NET Framework. CLR là nền tảng của .NET Framework. Phát triển ứng dụng Client Những ứng dụng client cũng gần với những ứng dụng kiểu truyền thống được lập trình dựa trên Windows. Đây là những kiểu ứng dụng hiển thị những cửa sổ hay những form trên desktop cho phép người dùng thực hiện một thao tác hay nhiệm vụ nào đó. Những ứng dụng client bao gồm những ứng dụng như xử lý văn bản, xử lý bảng tính, những ứng dụng trong lĩnh vực thương mại như công cụ nhập liệu, công cụ tạo báo cáo Những ứng dụng client này thường sử dụng những cửa sổ, menu, toolbar, button hay các thành phần GUI khác, và chúng thường truy cập các tài nguyên cục bộ như là các tập tin hệ thống, các thiết bị ngoại vi như máy in. Một loại ứng dụng client khác với ứng dụng truyền thống như trên là ActiveX control (hiện nay nó được thay thế bởi các Windows Form control) được nhúng vào các trang web trên Internet. Các ứng dụng này cũng giống như những ứng dụng client khác là có thể truy cập tài nguyên cục bộ. Những lớp .NET Framework chứa trong .NET Framework được thiết kế cho việc sử dụng phát triển các GUI. Điều này cho phép người phát triển nhanh chóng và dễ dàng tạo các cửa sổ, button, menu, toolbar, và các thành phần khác trong các ứng dụng được viết phục vụ cho lĩnh vực thương mại. 1.3. Ngôn ngữ C# Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi Lập Trình Mạng Nâng Cao Trang 5 Xây dựng chương trình Remote Desktop những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng. Phần cốt lõi hay còn gọi là trái tim của bất cứ ngôn ngữ lập trình hướng đối tượng là sự hỗ trợ của nó cho việc định nghĩa và làm việc với những lớp. Những lớp thì định nghĩa những kiểu dữ liệu mới, cho phép người phát triển mở rộng ngôn ngữ để tạo mô hình tốt hơn để giải quyết vấn đề. Ngôn ngữ C# chứa những từ khóa cho việc khai báo những kiểu lớp đối tượng mới và những phương thức hay thuộc tính của lớp, và cho việc thực thi đóng gói, kế thừa, và đa hình, ba thuộc tính cơ bản của bất cứ ngôn ngữ lập trình hướng đối tượng. Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp điều được tìm thấy trong phần khai báo của nó. Định nghĩa một lớp trong ngôn ngữ C# không đoi hỏi phải chia ra tập tin header và tập tin nguồn giống như trong ngôn ngữ C++. Hơn thế nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML để phát sinh tự động các document cho lớp. Ngôn ngữ C# cung cấp những đặc tính hướng thành phần (component- oriented), như là những thuộc tính, những sự kiện. Lập trình hướng thành phần được hỗ trợ bởi CLR cho phép lưu trữ metadata với mã nguồn cho một lớp. Lập Trình Mạng Nâng Cao Trang 6 Xây dựng chương trình Remote Desktop CHƯƠNG 2 : LẬP TRÌNH MẠNG TRONG .NET FRAMEWORK 2.1 Sử dụng các lớp hỗ trợ được xây dựng từ lớp Socket 2.1.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 ko 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: Constructor method Name Description 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 chuẩn hoặc tên máy. Một số thuộc tính: Name Description 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 Lập Trình Mạng Nâng Cao Trang 7 Xây dựng chương trình Remote Desktop 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: Name Description 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. 2.1.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 TcpListent: Phương thức khởi tạo: Constructor method Name Description TcpListener (Port: Int32) Tạo một TcpListener và lắng nghe tại cổng chỉ định TcpListener (IPAddress, Int32) Tạo một TcpListener và lắng nghe các kết nối đến tại đị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: Lập Trình Mạng Nâng Cao Trang 8 Xây dựng chương trình Remote Desktop Name Description 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 liệu 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 Stop Dừng việc nghe. 2.1.3. Lớp UDPClient 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. Constructor method Description 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, AddressFamily) Tạo một UdpClient và gắn số hiệu cổng, AddressFamily UdpClient (String, Int32) Tạo một UdpClient và thiết lập với một máy Lập Trình Mạng Nâng Cao Trang 9 Xây dựng chương trình Remote Desktop trạm từ xa mặc định. PUBLIC Method Name Description 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. 2.2. Socket không đồng bộ 2.2.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: Lập Trình Mạng Nâng Cao Trang 10 [...]... the worker thread UnsafeRegisterWaitForSingleObject () Registers an unsafe delegate waiting for a WaitHandle object Lập Trình Mạng Nâng Cao Trang 17 Xây dựng chương trình Remote Desktop CHƯƠNG 3: CHƯƠNG TRÌNH REMOTE DESKTOP 3.1 iới thiệu giao thức Remote Desktop: Giao thức Remote Desktop là kết nối cơ bản với giao diện đồ họa được thiết kế để tạo điều kiện thuận lợi cho người sử dụng tương tác với... Lập Trình Mạng Nâng Cao Trang 15 Xây dựng chương trình Remote Desktop í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…) Tạo một tuyến trong C# …… Thread newThread=newThread(new ThreadStart(newMethod)); …… } void newMethod() { } Lập Trình Mạng Nâng Cao Trang 16 Xây dựng chương trình Remote Desktop 2.3.3 Sử dụng Threadpool trong các chương. .. e.ToString())); } } } return; } Lập Trình Mạng Nâng Cao Trang 31 Xây dựng chương trình Remote Desktop catch (Exception err1) { MessageBox.Show(err1.Message.ToString(), "Loi!!!"); if (client != null) client.Client.Close(); } } private void button1_Click(object sender, EventArgs e) { Application.Exit(); } } } Lập Trình Mạng Nâng Cao Trang 32 Xây dựng chương trình Remote Desktop 3.3.4 Code chương trinh client:  Kết... Remote Desktop có sẵn, tiến hành xây dựng mô hình Client-Server hỗ trợ các tính năng cơ bản tương tác với máy tính từ xa như tắt máy, khởi động lại máy, ngủ đông, khóa máy, chạy một số ứng dụng, gửi thông điệp, gửi một file hay lấy 1 file từ máy đang điều khiển… sử dụng ngôn ngữ lập trình C# 3.3.2 Giao diện chương trình: Server: Lập Trình Mạng Nâng Cao Trang 23 Xây dựng chương trình Remote Desktop. .. quá trình kết nối PDUs từ client tới người server và từ server tới client được trao đổi trong suốt pha có thể Sau khi client nhận Font Map PDU nó có thể bắt đầu điều khiển chuột và phím đến server, nó tiến hành tương tác với Remote computer với giao diện đồ họa Lập Trình Mạng Nâng Cao Trang 22 Xây dựng chương trình Remote Desktop 3.3 Chương trình: 3.3.1 Yêu cầu bài toán: Dựa trên nên tảng giao thức Remote. .. 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 Lập Trình Mạng Nâng Cao Trang 14 Xây dựng chương trình Remote Desktop được gọi là 1 tuyến (Thread) Trong 1 ứng... BeginConnect () To connect to a remote host Lập Trình Mạng Nâng Cao EndConnect () Trang 11 Xây dựng chương trình Remote Desktop 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 EndSendTo () remote host Để chấp nhận kết... cơ chế cho phép đơn giản hóa việc truyền thông chuyên dụng mở rộng giữa người sử dụng máy tính trực tiếp và những thành phần chạy trên máy tính ở Lập Trình Mạng Nâng Cao Trang 18 Xây dựng chương trình Remote Desktop 3.2 cơ chế hoạt động của Remote Desktop: 3.2.1 Connection Initiation Client thực hiện kết nối đến server bằng cách gửi gói tin yêu cầu kết nối PDU x.224 Server phản hồi lại với gói xác... điều khiển… sử dụng ngôn ngữ lập trình C# 3.3.2 Giao diện chương trình: Server: Lập Trình Mạng Nâng Cao Trang 23 Xây dựng chương trình Remote Desktop Client: Lập Trình Mạng Nâng Cao Trang 24 Xây dựng chương trình Remote Desktop 3.3.3 Code chương trình Server:  Lắng nghe kết nối trên port 8080 private void Main_Load(object sender, EventArgs e) { langnghe = new Thread(new ThreadStart(LangNghe)); langnghe.Start();... SocketFlags.None, new AsyncCallback(ReceivedData), sock); Với ReceivedData được định nghĩa như sau: void ReceivedData(IAsyncResult iar) { Socket remote = (Socket)iar.AsyncState; Lập Trình Mạng Nâng Cao Trang 13 Xây dựng chương trình Remote Desktop int recv = remote. EndReceive(iar); string receivedData = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(receivedData); } Nhận dữ liệu bất đồng . WaitHandle object Lập Trình Mạng Nâng Cao Trang 17 Xây dựng chương trình Remote Desktop CHƯƠNG 3: CHƯƠNG TRÌNH REMOTE DESKTOP 3.1. iới thiệu giao thức Remote Desktop: Giao thức Remote Desktop là kết. trong các ứng dụng mạng 14 CHƯƠNG 3: CHƯƠNG TRÌNH REMOTE DESKTOP 18 3.1. iới thiệu giao thức Remote Desktop: 18 3.2. cơ chế hoạt động của Remote Desktop: 19 3.3. Chương trình: 23 3.4. Hướng dẫn. THUYẾT VỀ .NET 2 Lập Trình Mạng Nâng Cao Trang 1 Xây dựng chương trình Remote Desktop CHƯƠNG 2 : LẬP TRÌNH MẠNG TRONG .NET FRAMEWORK 7 2.1 Sử dụng các lớp hỗ trợ được xây dựng từ lớp Socket 7

Ngày đăng: 18/08/2015, 12:36

Từ khóa liên quan

Mục lục

  • CHƯƠNG 3 CƠ SỞ LÝ THUYẾT VỀ .NET

    • 1.1. Giới thiệu về ngôn ngữ C#:

    • 1.2. Kiến trúc .Net

    • 1.3. Ngôn ngữ C#

    • CHƯƠNG 2 : LẬP TRÌNH MẠNG TRONG .NET FRAMEWORK

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

        • 2.1.1 Lớp TCPClient

        • 2.1.2. Lớp TCPListener

        • 2.1.3. Lớp UDPClient

        • 2.2. Socket không đồng bộ

          • 2.2.1. Mô hình xử lý sự kiện của Windows

          • 2.2.2. Sử dụng Socket không đồng bộ

          • 2.3. Sử dụng Thread trong các ứng dụng mạng

            • 2.3.1. Một số khái niệm

            • 2.3.2. Sử dụng Thread trong chương trình .Net

            • 2.3.3. Sử dụng Threadpool trong các chương trình .Net

            • CHƯƠNG 3: CHƯƠNG TRÌNH REMOTE DESKTOP

              • 3.1. iới thiệu giao thức Remote Desktop:

              • 3.2. cơ chế hoạt động của Remote Desktop:

                • 3.2.1. Connection Initiation

                • 3.2.2. Basic Settings Exchange

                • 3.2.3. Channel Connection

                • 3.2.4. RDP Sercurity Commencement

                • 3.2.5. Secure Settings Exchange:

                • 3.2.6. Licensing:

                • 3.2.7. Capabilities Negotiation:

                • 3.2.8. Connection Finalization:

Tài liệu cùng người dùng

Tài liệu liên quan