Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
1,2 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN ĐẠI HỌC ĐÀ NẴNG ĐỒ ÁN CƠ SỞ XÂY DỰNG ỨNG DỤNG REMOTE DESKTOP Sinh viên thực : TRẦN VĂN HUY Giảng viên hướng dẫn : TS NGUYỄN SĨ THÌN Lớp : 18IT5 Đà nẵng, tháng 12 năm 2020 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN ĐẠI HỌC ĐÀ NẴNG ĐỒ ÁN CƠ SỞ XÂY DỰNG ỨNG DỤNG REMOTE DESKTOP Đà Nẵng, tháng 12 năm 2020 MỞ ĐẦU Sự phát triển vũ bão ngành công nghệ thơng tin kéo theo dịch vụ mạng ngày phát triển, mở rộng hoàn thiện hơn, tồn nhiều khuyết điểm song khơng tiện lợi từ công nghệ đem lại cho xã hội lồi người nhanh chóng xác Ngơn ngữ lập trình phần khơng thể thiếu việc xây dựng nên giới công nghệ linh hoạt mạnh mẽ Dựa kiến thức lập trình mạng với Java, từ ý tưởng xây dựng chương trình có khả 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 xây dựng, dựa theo mơ hình ClientServer hỗ trợ tính tương tác với máy tính từ xa tắt máy, khởi động lại máy, ngủ đơng, khóa máy, chạy số ứng dụng, gửi thơng điệp, gửi file hay lấy file từ máy điều khiển… sử dụng ngơn ngữ lập trình Java LỜI CẢM ƠN Lời em xin bày tỏ lòng biết ơn chân thành tới thầy giáo Nguyễn Sĩ Thìn ,giảng viên trường ĐH Cơng Nghệ Thơng Tin & Truyền Thông Việt Hàn, thầy trực tiếp hướng dẫn bảo tận tình suốt trình em thực đồ án thời gian qua Em xin chân thành cảm ơn thầy giáo, cô giáo trường trường ĐH Công Nghệ Thông Tin & Truyền Thông Việt Hàn đặc biệt thầy cô khoa Khoa học máy tính, giúp e có thêm kiến thức để hoàn thành đồ án Một lần em xin chân thành cảm ơn! Đà Nẵng, ngày 25 tháng 12 năm 2020 Sinh viên thực Trần Văn Huy NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… MỤC LỤC Trang Chương Tổng quan đề tài 1.1 Mục đích chọn đề tài 1.2 Giới thiệu đề tài 1.3 Phương pháp triển khai Chương Giới thiệu ngơn ngữ lập trình Java 2.1 Giới thiệu ngôn ngữ Java 2.2 Những đặc điểm Java 2.3 Các platform Java 2.4 Tiêu chuẩn mơi trường Java điển hình Chương Giới thiệu lập trình Socket Java 3.1 Tổng quan Socket 3.2 Lập trình TCP Socket với Java .7 3.3 Các phương thức lớp ServerSocket Java .9 3.4 Các phương thức lớp Socket Java .11 Chương Remote Desktop: 13 4.1 Cơ chế hoạt động Remote Desktop: .13 4.2 Sơ đồ hoạt động 14 4.3 Kết chạy chương trình: 14 Chương Kết luận 16 DANH MỤC CÁC BẢNG Trang Bảng 3.1 –Phương thức lớp ServerSocket Java Bảng 3.2 –Các phương thức phổ biến ServerSocket Java Bảng 3.1 –Các phương thức lớp Socket Java Bảng 3.4 –Một số phương thức lớp Socket quan tâm 10 11 12 DANH MỤC HÌNH Trang Hình 2.1 – Các platform Java Hình 2.2 – Tiêu chuẩn mơi trường Java Hình 3.1 – Tổng quan Socket Hình 3.2 – Mơ hình hoạt động Socket Hình 3.3 – Mơ hình hoạt động Socket Java Hình 3.4 – Mơ hình Client -Server Hình 4.1 – Màn hình cài đặt mật Server Hình 4.2 – Màn hình nhập địa ip Hình 4.3 – Màn hình nhập mật Hình 4.4 – Màn hình remote desktop 14 15 15 15 Chương Tổng quan đề tài 1.1 Mục đích chọn đề tài Cùng với gia tăng ứng dụng máy tính lĩnh vực đào tạo, kinh doanh hay thương mại, ứng dụng dựa mơ hình client-server khơng thể thiếu Vấn đề chia sẻ tài nguyên hệ thống đặc biệt desktop (màn hình) input (đầu vào) có ý nghĩa quan trọng việc phát triển ứng dụng mô hình client-server thơng qua mạng LAN internet 1.2 Giới thiệu đề tài Xây dựng chương trình “Xây dựng ứng dụng Remote Desktop” Chương trình cho phép máy tính(Client) truy cập tới thực hiên chức điều khiển máy tính khác từ xa(Server) Chương trình Remote Desktop: + Điều khiển trực tiếp qua hình, tiếp quản phím chuột + Thực các thao tác: tắt máy, khởi động lại máy, ngủ đơng, khóa máy, chạy số ứng dụng, gửi thông điệp 1.3 Phương pháp triển khai Dùng phương pháp lập trình mạng TCP Socket threaded Server để tạo kết nối Client-Server, tạo biểu diễn luồng I/O Server truy cập tới máy tính client thực hiên việc điều khiển 2.4 Tiêu chuẩn môi trường Java điển hình Thơng thường, chương trình Java trải qua giai đoạn chính: Editor: Lập trình viên viết chương trình lưu vào máy tính với định dạng java Compiler: Biên dịch chương trình thành bytecodes (định dạng class) - nhờ bước trung gian mà Java viết lần chạy hệ điều hành khác Class Loader: Đọc file class chứa mã bytecodes lưu vào nhớ Bytecode Verifier: Đảm bảo mã bytecodes hợp lệ không vi phạm vấn đề bảo mật Java Intepreter: Biên dịch bytecodes thành mã máy để máy tính hiểu sau thực thi chương trình Hình 2.2 Tiêu chuẩn môi trường Java Chương Giới thiệu lập trình Socket Java 3.1 Tổng quan Socket Trong hệ thống mạng máy tính tồn mơ hình tham chiếu có kiến trúc phần tầng (OSI, TCP/IP…) nhằm hỗ trợ chức trao đôi thông tin ứng dụng nhiều máy tính khác Hình 3.1 Tổng quan socket Dữ liệu bên gửi đóng gói (Encapsulation) từ tầng đến tầng cuối tầng vật lí (Physical Layer), sau nhờ tầng vật lí chuyển liệu đến tầng vật lí máy bên nhận, bên nhận tiến hành giải mã (decapsulation) gói kiện từ tầng lên tầng cùng, tầng ứng dụng (application layer) Hình 3.2 Mơ hình hoạt động socket Ở đây, Socket cửa giao tiếp tầng ứng dụng tầng giao vận (Transport layer) Nói cách khác, Socket giao diện ứng dụng tạo máy trạm, quản lí hệ điều hành qua ứng dụng gửi/nhận thông điệp đến/từ ứng dụng khác Ở đó, Socket ràng buộc với mã số cổng (Port Number) để giúp tầng giao vận định danh ứng dụng nhận/gửi thơng điệp Các bạn thấy hình ảnh trên, tầng giao vận có phương thức TCP (Ttransmission Control Protocol) UDP (User Datagram Protocol), socket có loại: Stream Socket sử dụng TCP truyền dòng bytes Datagram Socket dử dụng UDP truyền gói tin Với ngơn ngữ lập trình Java, cung cấp loại khác sockets: Stream Socket (TCP) : Tạo luồng liệu hai chiều, đáng tin cậy, có trình tự khơng trùng lặp, liệu gửi/nhận có có liên kết Dùng với Socket Class java Datagram Socket (UDP): Có thể nhận liệu khơng theo tình tự, trùng lặp Dùng với DatagramSocket Class Multicast Socket : cho phép liệu gửi đến nhiều bên nhận lúc Dùng với DatagramSocket Class 3.2 Lập trình TCP Socket với Java Hình 3.3 Mơ hình hoạt động socket Java Đúng tính chất TCP cần có liên kết chiều trước server client trao đổi thơng điệp với Ban đầu, phía server tạo Socket ràng buộc với cổng (port number) để chờ nhận yêu cầu từ phía client Tiếp đến phía client yêu cầu server cách tạo Socket TCP máy kèm với địa IP port number tiến tình tương ứng máy server Khi client tạo Socket, client TCP tạo liên kết với server TCP chờ chấp nhận kết nối từ server TCP cung cấp dịch vụ truyền dòng tin cậy có thứ tự client server, máy chủ máy nhận có địa IP Thêm vào đó, thơng điệp truyền có xác nhận trả Sau ví dụ ứng dụng đơn giản lập trình TCP Socket với Java Miêu tả ứng dụng: Client đọc dòng văn nhập từ bàn phím người dùng , gửi tới server qua Socket Server đọc dòng văn gửi từ Socket Server chuyển lại dòng văn kèm theo “Server accepted” tới phía client qua Socket Client đọc dòng văn từ socket in dòng văn nhận từ server Hình 3.4 Mơ hình Client-Server Chúng ta thấy phía server client có luồng liệu, luồng Socket để gửi thông điệp luồng vào từ Socket để nhận thông điệp, với bên có hai biến input output (inFromServer, outToServer inFromClient, outToClient) 3.3 Các phương thức lớp ServerSocket Java Lớp java.net.ServerSocket Java sử dụng ứng dụng Server để thu nhận cổng nghe yêu cầu từ Client Lớp ServerSocket có constructor sau: STT Phương thức miêu tả public ServerSocket(int port) throws IOException Cố gắng để tạo Server Socket giới hạn với số hiệu cổng xác định Một exception xuất cổng thuộc phạm vi ứng dụng khác public ServerSocket(int port, int backlog) throws IOException Tương tự constructor trước, tham số backlog xác định có Client vào để lưu giữ hàng đợi (wait queue) public ServerSocket(int port, int backlog, InetAddress address) throws IOException Tương tự constructor trước, tham số InetAddress xác định địa IP nội để kết nối tới InetAddress sử dụng cho Server mà có nhiều địa IP, cho phép Server xác định địa IP để chấp nhận yêu cầu Client public ServerSocket() throws IOException Tạo Server Socket không giới hạn Khi sử dụng constructor này, sử dụng phương thức bind() bạn kết nối với Server Socket Bảng 3.1 Phương thức lớp ServerSocket Java Nếu ServerSocket constructor không ném exception, nghĩa ứng dụng bạn thành công kết nối tới cổng xác định sẵn sàng cho yêu cầu Client Bảng liệt kê phương thức phổ biến lớp ServerSocket Java: STT Phương thức miêu tả public int getLocalPort() Trả cổng mà Server Socket nghe Phương thức hữu dụng bạn truyền số hiệu cổng constructor để Server 10 tìm cổng cho bạn public Socket accept() throws IOException Đợi cho Client đến Phương thức block tới Client kết nối tới Server cổng xác định Socket trễ (timeout), giả sử giá trị time-out thiết lập với phương thức setSoTimeout() Nếu khơng thì, phương thức block vơ hạn public void setSoTimeout(int timeout) Thiết lập giá trị timeout cho Server Socket đợi Client bao lâu, phương thức accept() gọi public void bind(SocketAddress host, int backlog) Nối kết Socket tới Server cổng xác định đối tượng SocketAddress Sử dụng phương thức bạn khởi tạo đối tượng ServerSocket với constructor khơng có tham số Bảng 3.2 Các phương thức phổ biến ServerSocket Java Khi ServerSocket gọi phương thức accept(), phương thức không trả giá trị tới Client kết nối Sau Client kết nối, ServerSocket tạo Socket cổng chưa xác định trả tham chiếu tới Socket Bây giờ, kết nối TCP tồn Client Server, giao tiếp bắt đầu 3.4 Các phương thức lớp Socket Java Lớp java.net.Socket biểu diễn socket mà Client Server sử dụng để kết nối với Client thu nhận đối tượng Socket việc khởi tạo nó, Server thu nhận đối tượng Socket từ giá trị trả phương thức accept() Lớp Socket có constructor mà Client sử dụng để kết nối tới Server: STT Phương thức miêu tả public Socket(String host, int port) throws UnknownHostException, IOException 11 Phương thức cố gắng kết nối tới Server xác định cổng xác định Nếu constructor không ném exception, kết nối thành công Client kết nối tới Server public Socket(InetAddress host, int port) throws IOException Phương thức tương tự constructor trước, ngoại trừ host biểu thị đối tượng InetAddress public Socket(String host, int port, InetAddress localAddress, int localPort) throws IOException Kết nối tới host cổng xác định, tạo Socket host nội địa cổng xác định public Socket(InetAddress host, int port, InetAddress localAddress, int localPort) throws IOException Phương thức tương tự constructor trước, ngoại trừ host biểu thị đối tượng InetAddress thay String public Socket() Tạo Socket rời rạc Sử dụng phương thức connect() để kết nối Socket tới Server Bảng 3.3 Các phương thức lớp Socket Java Một số phương thức lớp Socket quan tâm liệt kê Cả Server Client có đối tượng Socket, phương thức gọi Client Server STT Phương thức miêu tả public void connect(SocketAddress host, int timeout) throws IOException Phương thức kết nối Socket tới host xác định Phương thức cần thiết bạn khởi tạo Socket sử dụng constructor khơng có tham số 12 public InetAddress getInetAddress() Phương thức trả địa máy tính khác mà Socket kết nối tới public int getPort() Trả cổng mà Socket kết nối thiết bị từ xa public int getLocalPort() Trả cổng mà Socket kết nối thiết bị nội public SocketAddress getRemoteSocketAddress() Trả địa Socket từ xa public InputStream getInputStream() throws IOException Trả input stream Socket Input stream kết nối tới output stream Socket từ xa public OutputStream getOutputStream() throws IOException Trả output stream Socket Output stream kết nối tới input stream Socket từ xa public void close() throws IOException Đóng Socket, mà làm đối tượng Socket khơng cịn khả kết nối 13 Chương Remote Desktop: Remote Desktop kết nối với giao diện đồ họa 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 hệ máy tính từ xa cách cập nhật thông tin đồ họa đến từ máy tính từ xa tới người sử dụng đồng thông tin quản lý người dùng tương tác đến máy tính xa, giống ngồi máy Giao thức cung cấp chế cho phép đơn giản hóa việc truyền thông chuyên dụng mở rộng người sử dụng máy tính trực tiếp thành phần chạy máy tính xa 4.1 Cơ chế hoạt động Remote Desktop: Ban đầu, phía server tạo Socket ràng buộc với cổng (port number) để chờ nhận yêu cầu từ phía client Tiếp đến phía client yêu cầu server cách tạo Socket TCP máy kèm với địa IP port number tiến tình tương ứng máy server Khi client tạo Socket, client TCP tạo liên kết với server TCP chờ chấp nhận kết nối từ server Khi kết nối với Server, Server tiến hành gửi hình qua máy Client Khi nhận hình, Client hiển thị hình điều khiển Khi thực điều khiển Client có lớp SendEvent gửi kiện sang Server Khi Server nhận kiện từ Client gửi dùng đối tượng Robot để thực thi 14 4.2 Sơ đồ hoạt động 4.3 Kết chạy chương trình: Đầu tiên chạy bên phía Server Cài đặt mật cho Server Hình 4.1 Màn hình nhập mật 15 Tiếp theo chạy bên phía Client nhập ip: Hình 4.2 Màn hình nhập địa ip Cửa sổ thứ xuất nhập mật với mật cài Server: Hình 4.3 Màn hình nhập mật Nếu mật ip nhập sau hình điều khiển Hình 4.4 Màn hình remote desktop 16 Chương Kết luận Đề tài viết chương trình remote desktop thức nội dung - Tìm hiểu cách lập trình socket Java - Tìm hiểu cách hoạt động chương trình điểu khiển máy tính từ xa đơn giản Ưu nhược điểm chương trình - Ưu điểm: + Đơn giản gọn nhẹ + Điều khiển trực tiếp qua hình, tiếp quản phím chuột + Thực các thao tác: tắt máy, khởi động lại máy, ngủ đơng, khóa máy, chạy số ứng dụng, gửi thơng điệp - Nhược điểm: + Còn nhiều lỗi + Chưa truyền gửi file 17 DANH MỤC TÀI LIỆU THAM KHẢO Tài liệu: [1] THE JavaTM Programming Language 4th, Ken Arnold, James Gosling, David Holmes, Nhà xuất Prentice Hall, 2005 [2] Effective Java: programming language guide, Joshua Bloch, Nhà xuất Addison-Wesley, 2001 [3] Java Network Programming, Elliotte Rusty Harold, Nhà xuất O'Reilly Media, 2004 [4] Java Network Programming and Distributed Computing, David Reilly, Michael Reilly, Nhà xuất Addison-Wesley Professional, 2004 [5] An Introduction to Network Programming with Java, Jan Graba, Pearson/Addison Wesley, 2003 18