Xây dựng ứng dụng FTP client sử dụng giao thức FTPp

69 476 0
Xây dựng ứng dụng FTP client sử dụng giao thức FTPp

Đ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

LỜI CẢM ƠN Trước tiên, em xin chân thành cảm ơn đến thầy giáo Th.S Trần Hồng Anh tận tình hướng dẫn em thời gian thực đồ án tốt nghiệp Em xin chân thành cảm ơn thầy cô giáo trường Đại học Công Nghệ Thông Tin & Truyền Thông – ĐH Thái Nguyên truyền thụ kiến thức cho em năm năm học tập trường Tôi xin gửi lời cảm ơn đến tất bạn bè động viên giúp đỡ trình học tập thời gian thực đồ án tốt nghiệp Cuối cùng, em xin kính chúc thầy cô sức khỏe, tiếp tục đạt nhiều thành tích giảng dạy nghiên cứu khoa học nghiệp giáo dục Thái Nguyên tháng năm 2012 Sinh viên: Nguyễn Thành Luân LỜI NÓI ĐẦU Sự phát triển mạnh mẽ công nghệ thông tin năm gần tạo nên thay đổi to lớn người Nó ngày khẳng định vai trò phát triển chung xã hội.Mạng viễn thông mà tiêu biểu Internet kết nối người toàn giới, cung cấp đa dịch vụ từ trò chuyện trực tuyến, thư điện tử, điện thoai Internet, hội nghị truyền hình, thông tin khoa học kinh tế, giáo dục…Truy cập Internet trở thành nhu cầu quen thuộc người Vấn đề trao đổi file thiếu người dùng đầu cuối Giao thức FTP giao thức trao đổi file tin cậy phổ biến, thường sử dụng để trao đổi file người dùng cuối với máy chủ FTP, công cụ thiếu lập trình viên phát triển web hay người dùng muốn xây tự thiết lập trang web cho Xuất phát từ thực tế em thực đề tài: Xây dựng ứng dụng FTP Client sử dụng giao thức FTP Nội dung gồm phần : - Chương 1: Tổng quan lập trình mạng C# Chương 2: Giao thức FTP - File transfer protocol Chương 3: Xây dựng chương trình Đề tài thực thời gian ngắn, khả hạn chế nên chắn không tránh khỏi thiếu xót Em mong nhận bảo từ thầy cô đóng góp bạn DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ FTP File Transfer Protocol: Giao thức truyền file TCP Transmission Control Protocol: Giao thức điều khiển truyền vận FTP Server Máy chủ FTP : Trình chủ FTP Client Máy khách : Trình khách Server -FTP Process Tiến trình máy chủ FTP Server-PI Server Protocol Interpreter Server-DTP Server DataTransfer Process User-PI User Protocol Interpreter User-DTP User Data Transfer Process Username Tên người dùng Password Mật Hostname Địa máy chủ FTP Download Tải Upload Tải lên MỤC LỤC DANH MỤC HÌNH DANH MỤC CÁC BẢNG CHƯƠNG TỔNG QUAN VỀ LẬP TRÌNH MẠNG TRONG C# 1.1 Sơ lược lập trình Socket 1.1.1 Khái niệm địa cổng (Address & Port) Nguyên lý: - Trong máy có nhiều ứng dụng muốn trao ứng dụng khác thông qua mạng (ví dụ có ứng dụng máy A muốn trao đổi với với ứng dụng máy B) - Mỗi máy tính có đường truyền liệu (để gửi nhận) Vấn đề: - Rất xảy "nhầm lẫn" liệu từ máy A gửi đến máy B liệu gửi cho ứng dụng máy B? Giải quyết: - Mỗi ứng dụng máy B gán số hiệu (được gọi cổng: Port), số hiệu cổng từ 65535 Khi ứng dụng máy A muốn gửi cho ứng dụng máy B việc điền thêm số hiệu cổng (vào trường RemotePort) vào gói tin cần gửi Trên máy B, ứng dụng việc kiểm tra giá trị cổng gói tin xem có trùng với số hiệu cổng (đã gán – giá trị Localport) hay không? Nếu xử lý, trái lại không làm Như vậy: - Khi cần trao đổi liệu cho hai ứng dụng cần phải biết thông tin tối thiểu địa (Address) số hiệu cổng (Port) ứng dụng 1.1.2 Lớp IPAddress Trên Internet trạm (có thể máy tính, máy in, thiết bị …) có định danh nhất, định danh thường gọi địa (Address) Địa Internet tập hợp gồm số có giá trị từ 0-255 cách dấu chấm Để thể địa này, người ta viết dạng sau: - Tên : Ví dụ May01, Server, … Địa IP đặt xâu: "192.168.1.1", "127.0.0.1" Đặt mảng byte, byte chứa số từ 0-255 Ví dụ để biểu diễn địa 192.168.1.1 với khai báo “byte[] DiaChi = new byte[4];”, ta viết:  DiaChi(0) = 192;  DiaChi(1) = 168;  DiaChi(2) = 1;  DiaChi(3) = 1; - Hoặc số (long), có độ dài byte Ví dụ, với địa 192.168.1.1 giá trị là: 16885952 (đây số hệ thập phân xếp liền byte lại với 00000001 00000001 10101000 - 11000000 (Byte 0) 168 192 (Byte 3) Như vậy, để đổi địa chuẩn dạng số ta việc tính toán cho thành phần Ví dụ: Đổi địa 192.168.1.2 số, ta tính sau : * 256 ^ + 1* 256 ^ + 168 * 256 ^ + 192 * 256 ^ Trong NET, IPAddress lớp dùng để mô tả địa Đây lớp sử dụng thao tác (truyền) vào lớp IPEndpoint, UDP, TCP, Socket … Bảng 1.1: Các thành phần lớp IpAddress Thành viên Static Any Mô tả Cung cấp địa IP (thường 0.0.0.0) để Server phải lắng nghe hoạt động Client tất Broadcast Card mạng Thuộc tính đọc Cung cấp địa IP quảng bá (Broadcast, thường Loopback AddressFamily 255.255.255.255), dạng số long Trả địa IP lặp (IP Loopback, ví dụ 127.0.0.1) Trả họ địa địa IP hành Nếu địa dạng IPv4 kết Internetwork, InternetworkV6 Phương thức IPAddress(Int64) IPAddress(Byte[]) GetAddressByte () HostToNetworkOrd địa IPv6 Mô tả Tạo địa IP từ số long Tạo địa IP từ mảng Byte Chuyển địa thành mảng Byte Đảo thứ tự Byte số cho với thứ tự Byte er() IsLoopback() địa IPAddress Cho biết địa có phải địa lặp hay không? - Ví dụ 1: Kiểm tra xem 192.168.1.300 có phải địa IP hợp lệ không private void KiemTra() { String Ip1 = "127.0.0.1"; String Ip2 = "999.0.0.1"; MessageBox.Show(IPAddress.TryParse(Ip1, new IPAddress(0))); MessageBox.Show (IPAddress.TryParse(Ip2, new IPAddress(1))); } - Ví dụ 2: Chuyển địa hành mảng byte hiển thị thành phần mảng private void KiemTra() { IpAddress Ip3 = new IPAddress(16885952); Byte[] b; b = Ip3.GetAddressBytes(); MessageBox.Show("Address: " & b(0) &"." & b(1) &"." & b(2) & "." & b(3));} 1.1.3 Lớp IPEndpoint Trong mạng, để hai trạm trao đổi thông tin với chúng cần phải biết địa (IP) số hiệu cổng mà hai bên dùng để trao đổi thông tin Lớp IPAddress cung cấp cho ta vế địa IP (IPAddress), thiếu vế thứ hai số hiệu cổng (Port number) Như vậy, lớp IPEndpoint lớp chứa đựng IPAddress Port number Đối tượng IPEndpoint dùng sau để truyền trực tiếp cho đối tượng UDP, TCP… Bảng 1.2: Các thành viên lớp IpEndPoint Phương thức khởi tạo IPEndPoint(Int64, Int32) Mô tả Tạo đối tượng lớp IPEndPoint, tham số truyền vào địa IP (ở dạng số) cổng IPEndPoint(IPAddress, dùng để giao tiếp Tạo đối tượng lớp IPEndPoint, Tham Int32) số truyền vào địa IPAddress số hiệu Thuộc tính Address cổng dùng để giao tiếp Mô tả Trả thiết lập địa IP cho Endpoint (trả AddressFamily đối tượng IPAddress) Lấy loại giao thức mà Endpoint sử Port Phương thức Create() dụng Lấy gán số hiệu cổng Endpoint Mô tả Tạo Endpoint từ địa socket (socket address) ToString() Trả địa IP số hiệu cổng theo khuôn dạng địa chỉ: cổng Ví dụ: “192.168.1.1:8080” 1.1.4 Lớp UDP Giao thức UDP (User Datagram Protocol hay User Define Protocol) giao thức phi kết nối (connectionless) có nghĩa bên gửi liệu cho bên mà không cần biết bên sẵn sàng hay chưa? (Nói cách khác không cần thiết lập kết nối hai bên tiến hành trao đổi thông tin) Giao thức không tin cậy giao thức TCP tốc độ lại nhanh dễ cài đặt Ngoài ra, với giao 10 3.4.1 Các lớp kết nối tương tác kết nối Hình 3.7: Các lớp xử lý tương tác kết nối - Lớp CKetNoi: thực thao tác với sở liệu mở kết nối, đóng kết nối, lấy liệu thêm liệu Mô tả chi tiết: Tên ChuoiKetNoi Conn MoKetNoi LoadDuLieu InsertItemUpDown InsertHost DongKetNoi Loại Field Property Method Method Method Method Method Kiểu trả string OleDbConnection void DataTable void void void Phạm vi private public private public public public public Chú giải Chuỗi kết nối Đối tượng kết nối Mở kết nối Load liệu Thêm xử lý Thêm host Đóng kết nối - Lớp ConnectionData: lưu trữ thông tin host bao gồm địa host, user đăng nhập, mật đăng nhập, port Mô tả chi tiết: Tên address anonymous password port username Loại Field Field Field Field Field Kiểu trả string string string string string Phạm vi public public public public public 55 Chú giải địa host Xác thực không đăng nhập Mật Port Tên truy cập - Lớp ConnectionList: lưu trữ đối tượng thuộc lớp ConnectionData Mô tả chi tiết: Tên mylist SearchItem Loại Field Field Kiểu trả ArrayList bool Phạm vi private public RemoveItem ItemCount Item ConnectionList Field Field Field bool int ConnectionData public public public Chú giải Danh sách ConnectionData Tìm kiếm mộtđối tượng ConnectionData Xóađối tượng ConnectionData Đếm số ConnectionData Một đối tượng ConnectionData Phương thức khởi tạo 3.4.2 Các lớp xử lý FTP - Lớp FtpClient: xử lý thao tác làm việc với server download, upload, xóa tập tin, xóa thư mục, vv thông qua giao thức FTP 56 Hình 3.8: Lớp xử lý FTP Client Mô tả chi tiết: Tên verboseDebugging Loại Field Kiểu trả bool 57 Phạm vi private Chú giải Xác nhận lỗi username timeoutSeconds server segments result receiveBuffer port password message m_iServerOS lstMessage loggedin clientSocket BUFFER_SIZE ASCII Password Port RemotePath RemotePort Segments Server ServerOS Timeout Username VerboseDebugging ~FtpClient ChangeDir cleanup Close createDataSocket DeleteFile Download FireException GetFileList GetFileSize Login MakeDir readLine readResponse RemoveDir RenameFile sendCommand showMessage Upload UploadDirectory Field Field Field Field Field Field Field Field Field Field Field Field Field Field Field Property Property Property Property Property Property Property Property Property Property Method Method Method Method Method Method Method Method Method Method Method Method Method Method Method Method Method Method Method Method string int string List string byte[] int string string int ListView bool Socket int Encoding string int Property int List string int int Property bool private private private private private private private private private private private private private private private public public public public public public public public public public string void void Socket void void void string[] long void void string void void void void void void void public private public private public public private public public public public private private public public private private public public 58 Tên đăng nhập Thời gian timout Tên server Đối tượng xử lý Kết dạng chuỗi Kết dạng byte Port server Mật Thông báo Hệđiều hành server Danh sách thông báo Kiểm tra đăng nhập Đối tượng socket Kích thước buffer Mã ký tự đường dẫn server Port server Khởi tạođối tượng Dữ liệu theo địa Hủyđối tượng socket Đóng FTP Tạođối tượng Socket Xóa tập tin Download tập tin/Thư mục Ngoại lệ có lỗi Lấy danh sách tập tin Lấy kích thước tập tin Đăng nhập Tạo thư mục đọc kết đọc phản hồi từ server Xóa thư mục đổi tên gửi lệnh cho server hiển thị tin nhắn Upload file Upload thư mục 3.4.3 Lớp xử lý thao tác tách tập tin, thư mục client Hình 3.9: Lớp xử lý thao tác với tập tin - Lớp clsTreeView: xử lý file thư mục, ổ đĩa máy client Mô tả chi tiết: Tên path history Path CreateTreeView CreatLVItem DriveTypeImageKey Expand GetAllDriver GetAllInDirectory Loại Field Field Property Field Field Field Field Field Field Kiểu trả string clsHistory string bool ListViewItem string TreeNode void void 59 Phạm vi private private public public public private public public public Chú giải Đường dẫn tập tin/thư mục Lưu vết thao tác Tạo thư mục Tạo item cho thư mục Key ổđĩa Mở thư mục Lây tất driver Lấy tất thư mục GetDesktop Field void public GetFileSize GetPath GetRootDir HistoryAdd HistoryBack HistoryForward ImageKey Field Field Field Field Field Property Property string string DirectoryInfo void string string string private public private public public public public OpenFolder OpenHistory OpenTreeNode ParentFolder ShowError ShowErrorPath Property Property Property Property Property Property void string void void void void public public public public public public Load liệu desktop vào thư mục Lấy kích thước file Lấyđường dẫn Lấy thư mục gốc Thêm lưu vết Lưu vết trở lại Mã hìnhảnh cho thư mục Load danh sách thư mục Load danh sách lưu vết Mở node Thư mục cha Hiển thị lỗi Hiển thị lỗi 3.5 Giao diện chương trình Hình 3.10: Giao diện chương trình đăng nhập vào hệ thống 60 Hình 3.11: Sau đăng nhập hệ thống 61 Hình 3.12: Thực chức download 62 Hình 3.13: Thực chức upload 63 Hình 3.14: Thực chức tạo thư mục 64 Hình 3.15: Thực chức xóa file 65 Hình 3.16: Thực chức đổi tên 66 Hình 3.17: Đăng nhập hệ thống không thành công 67 KẾT LUẬN Sau thực đồ án tốt nghiệp, em hoàn thành đề tài Xây dựng ứng dụng FTP Client sử dụng giao thức FTP đạt kết định Ứng dụng FTP Client cho phép người dùng dễ dàng truyền file lên mạng Internet Đây cũnglà công cụ giúp cho người dùng giao tiếp với máy chủ web hosting hỗ trợ việc xây dựng website Kết đạt được: - Nắm kiến thức giao thức FTP Hoàn thành chương trình FTP Client cho phép truyền file tới FTP Server Chương trình có chức chính: download, upload file, thêm mới, - xóa thư mục, đổi tên thư mục FTP server Giao diễn chương trình thân thiện dễ sử dụng với người dùng Hạn chế: - Chương trình chạy chậm, chưa bắt hết lỗi Các chức chưa nhiều Chương trình đơn giản, cần cải tiến để thành công thực tế Hướng phát triển đề tài: - Hỗ trợ đăng nhập nhiều tài khoản Hỗ trợ sửa nội dung file mã nguồn FTP Server Xây dựng thêm số chức năng, tiện ích khác cho chương trình - 68 TÀI LIỆU THAM KHẢO [1] Lydia Parziale, TCP/IP Tutorial and Technical Overview,RedBook [2] Richard Blum, C# Network Programming, Sybex © 2003 [3] Đại học Cần Thơ, Bài giảng lập trình mạng [4].RichardBlum, C# Network Programming,2003 [5].David B Makofske, TCP/IP Sockets in C# Practical Guide for Programmers [6] Fiach Reid, Network Programming in NET [7].Website : http://vi.wikipedia.org/wiki/FTP, http://congdongcviet.com/ 69 ... đề tài: Xây dựng ứng dụng FTP Client sử dụng giao thức FTP Nội dung gồm phần : - Chương 1: Tổng quan lập trình mạng C# Chương 2: Giao thức FTP - File transfer protocol Chương 3: Xây dựng chương... CHƯƠNG GIAO THỨC FTP 2.1 Giới thiệu giao thức FTP FTP viết tắt File Transfer Protocol – giao thức truyền file FTP giao thức truyền file mạng dựa chuẩn TCP nên đáng tin cậy Để hoạt động, FTP cần... Server -FTP, phần máy client gọi tiến trình User -FTP - Kênh điều khiển kênh liệu FTP Mặc dù giao thức FTP sử dụng kết nối TCP, không dùng kênh TCP phần lớn giao thức truyền thông khác Mô hình FTP

Ngày đăng: 19/04/2017, 22:37

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • Trước tiên, em xin chân thành cảm ơn đến thầy giáo Th.S Trần Hồng Anh đã tận tình hướng dẫn em trong thời gian thực hiện đồ án tốt nghiệp này.

  • Tôi xin gửi lời cảm ơn đến tất cả bạn bè đã động viên giúp đỡ trong quá trình học tập cũng như trong thời gian thực hiện đồ án tốt nghiệp.

  • LỜI NÓI ĐẦU

  • Đề tài được thực hiện trong thời gian ngắn, cũng như khả năng còn hạn chế nên chắc chắn không tránh khỏi những thiếu xót. Em rất mong nhận được sự chỉ bảo từ thầy cô cũng như những đóng góp của các bạn.

  • MỤC LỤC

  • DANH MỤC HÌNH

  • CHƯƠNG 1. TỔNG QUAN VỀ LẬP TRÌNH MẠNG TRONG C#

  • Nguyên lý:

    • Trong một máy có rất nhiều ứng dụng muốn trao đối với các ứng dụng khác thông qua mạng (ví dụ có 2 ứng dụng trong máy A muốn trao đổi với với 2 ứng dụng trên máy B).

    • Rất có thể xảy ra "nhầm lẫn" khi dữ liệu từ máy A gửi đến máy B thì không biết là dữ liệu đó gửi cho ứng dụng nào trên máy B?

    • Mỗi ứng dụng trên máy B sẽ được gán một số hiệu (được gọi là cổng: Port), số hiệu cổng này từ 1..65535. Khi ứng dụng trên máy A muốn gửi cho ứng dụng nào trên máy B thì chỉ việc điền thêm số hiệu cổng (vào trường RemotePort) vào gói tin cần gửi. Trên máy B, các ứng dụng sẽ việc kiểm tra giá trị cổng trên mỗi gói tin xem có trùng với số hiệu cổng của mình (đã được gán – chính là giá trị Localport) hay không? Nếu bằng thì xử lý, còn trái lại thì không làm gì.

    • Như vậy:

    • Khi cần trao đổi dữ liệu cho nhau thì hai ứng dụng cần phải biết thông tin tối thiểu là địa chỉ (Address) và số hiệu cổng (Port) của ứng dụng kia.

    • 1.2.2.1 Lớp Thread

    • 1.2.2.2 Thao tác với luồng

    • 1.2.3.1 Đồng bộ hóa

    • 1.2.3.2 Deadlock

    • 1.2.3.3 Race condition

    • CHƯƠNG 2. GIAO THỨC FTP

    • CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH

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

Tài liệu liên quan