Báo cáo BTL môn Lập trình mạng: Chia sẻ file qua mạng Lan

12 800 7
Báo cáo BTL môn Lập trình mạng: Chia sẻ file qua mạng Lan

Đ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

Báo cáo bài tập lớn môn Lập trình mạng Chuyên ngành : Công nghệ thông tin Chủ đề: Chia sẻ file qua mạng LAN File zip gồm cả báo cáo bằng word và file slide excel về chủ đề Chia sẻ file qua mạng LAN, sử dụng cấu trúc Server Client

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN KHOA CÔNG NGHỆ THÔNG TIN - oOo - BÁO CÁO BÀI TẬP LỚN MƠN LẬP TRÌNH MẠNG XÂY DỰNG ỨNG DỤNG CHIA SẺ FILE QUA LAN Giảng viên: Lê Quang Lợi Nhóm thực hiện: Trần Mạnh Hoàng Nguyễn Thanh Sơn Hải Dương – Tháng năm 2016 Ứng dụng chia sẻ file qua LAN TRANG KÝ NHẬN Người tạo: Ngày: 28/03/2016 Trần Mạnh Hoàng Nguyễn Thanh Sơn Người hướng dẫn 1: Bài Tập Lớn Mạng Máy Tính (Ký duyệt) 2/12 Ngày: …./…./….… Ứng dụng chia sẻ file qua LAN MỤC LỤC Bài Tập Lớn Mạng Máy Tính 3/12 Ứng dụng chia sẻ file qua LAN PHẦN 1: GIỚI THIỆU Thế kỷ 21 mệnh danh kỷ công nghệ thông tin, với bùng nổ mạnh mẻ khoa học công nghệ Đây kỷ nguyên văn minh dựa sở cơng nghiệp trí tuệ Ngày nay, tin học trở thành môn khoa học quan trọng giới Sự phát triển mạnh mẽ cơng việc lập trình ứng dụng nhằm phục vụ nhu cầu, lợi ích người trở nên cấp thiết Máy tính trở thành công cụ đắc lực thiếu người Trong mơi trường mạng cục (hay cịn gọi mạng LAN), liệu truyền mạng phải đảm bảo: liệu chuyển tới đích nhanh chóng đắn Hầu hết liệu truyền qua mạng truyền dạng file Nhằm tìm hiểu thấu đáo số phương pháp truyền file qua mạng nhóm em chọn đề tài "Xây dựng ứng dụng chia sẻ file qua mạng LAN” với giao thức TCP Với giao diện trực quan, đơn giản, chương trình đáp ứng nhu cầu truyền liệu mạng LAN, giúp cho người dùng mạng LAN chia sẻ liệu cho cách nhanh chóng mà khơng cần cách thiết bị ngoại vi như: USB, ổ ứng ngoài…hoặc ứng dụng chia sẻ liệu có thao tác phức tạp hệ điều hành Do thời gian, kiến thức hiểu biết cịn hạn chế, chương trình cài đặt vài chức đơn giản ứng dụng chia sẻ file Bài Tập Lớn Mạng Máy Tính 4/12 Ứng dụng chia sẻ file qua LAN PHẦN 2: CƠ SỞ LÝ THUYẾT Quá trình truyền liệu mạng diễn phức tạp, chi tiết trình diễn tương tự thực tế ta gửi thư hay bưu phẩm, trước hết cần phải ghi rõ địa nơi đến (trường địa IP máy chủ), sau gửi thơng thường hay bảo đảm (tùy theo cách gửi mà thư hay bưu phẩm có chắn đến tay người nhận hay khơng), người nhận sau nhận hồi âm trả lời nhận đủ hay mát q trình chuyền tải, người gửi gửi tiếp phần bị (hoặc không cần gửi nữa) Cách chuyển liệu thông thường, không đảm bảo tương ứng với giao thức UDP (User Datagram Protocol), cách chuyển liệu đảm bảo tương ứng với giao thức TCP (Transmission Control Protocol) Chương trình “Ứng dụng chia sẻ file mạng LAN” sử dụng giao thức TCP để đảm bảo tính chuẩn xác q trình truyền liệu Giao thức TCP/IP TCP/IP (Transmission Control Protocol/ Internet Protocol) giao thức cho phép kết nối hệ thống mạng không đồng với Ngày nay, TCP/IP sử dụng rộng rãi mạng cục mạng Internet toàn cầu TCP/IP xem giản lược mơ hình tham chiếu OSI với bốn tầng sau: − Tầng liên kết mạng (Network Access Layer) − Tầng Internet (Internet Layer) − Tầng giao vận (Host-to-Host Transport Layer) − Tầng ứng dụng (Application Layer) Bài Tập Lớn Mạng Máy Tính 5/12 Ứng dụng chia sẻ file qua LAN • Tầng liên kết mạng (Network Access Layer) Tầng liên kết (còn gọi tầng liên kết liệu tầng giao tiếp mạng) tầng thấp mơ hình TCP/IP, bao gồm thiết bị giao tiếp mạng chương trình cung cấp thơng tin cần thiết để hoạt động, truy nhập đường truyền vật lý qua thiết bị giao tiếp mạng • Tầng Internet (Internet Layer) Tầng Internet (còn gọi tầng mạng) xử lý qua trình truyền gói tin mạng Các giao thức tầng bao gồm: IP (Internet Protocol), ICMP (Internet Control Message Protocol), IGMP (Internet Group Messages Protocol) • Tầng Tầng giao vận (Host-to-Host Transport Layer) Tầng giao vận phụ trách luồng liệu hai trạm thực ứng dụng tầng Tầng có hai giao thức chính: TCP (Transmission Control Protocol) UDP (User Datagram Protocol) TCP cung cấp luồng liệu tin cậy hai trạm, sử dụng chế chia nhỏ gói tin tầng thành gói tin có kích thước thích hợp cho tầng mạng bên dưới, báo nhận gói tin,đặt hạn chế thời gian time-out để đảm bảo bên nhận biết gói tin gửi Do tầng đảm bảo tính tin cậy, tầng không cần quan tâm đến UDP cung cấp dịch vụ đơn giản cho tầng ứng dụng Nó gửi gói liệu từ trạm tới trạm mà không đảm bảo gói tin đến tới đích Các chế đảm bảo độ tin cậy cần thực tầng • Tầng ứng dụng (Application Layer) Tầng ứng dụng tầng mơ hình TCP/IP bao gồm tiến trình ứng dụng cung cấp cho người sử dụng để truy cập mạng Có nhiều ứng dụng cung cấp tầng này, mà phổ biến là: Telnet: sử dụng việc truy cập mạng từ xa, FTP (File Transfer Protocol): dịch vụ truyền tệp, Email: dịch vụ thư tín điện tử, WWW (World Wide Web) Mơ hình Client/Server Mơ hình phổ biến chấp nhận rộng rãi hệ thống phân tán mơ hình client/server Trong mơ hình có tập tiến trình mà tiến trình đóng vai trị trình quản lý tài nguyên cho tập hợp tài nguyên cho trước tập hợp tiến trình client tiến trình thực tác vụ cần truy xuất tới tài nguyên phần cứng phần mềm dùng chung Bản thân trình quản lý tài nguyên cần phải truy xuất tới tài nguyên dùng chung quản lý tiến trình khác, số tiến trình vừa tiến trình client vừa tiến trình server Các tiến trình phát yêu cầu tới server chúng cần truy xuất tới tài nguyên server Nếu yêu cầu đắn server thực hành động yêu cầu gửi đáp ứng trả lời tới tiến trình client Mơ hình client/server cung cấp cách tiếp cận tổng quát để chia sẻ tài nguyên hệ thống phân tán Bài Tập Lớn Mạng Máy Tính 6/12 Ứng dụng chia sẻ file qua LAN Mô hình cài đặt nhiều môi trường phần cứng phần mềm khác Các máy tính sử dụng để chạy tiến trình client/server có nhiều kiểu khác khơng cần thiết phải phân biệt chúng; tiến trình client tiến trình server chạy máy tính Một tiến trình server sử dụng dịch vụ server khác Bài Tập Lớn Mạng Máy Tính 7/12 Ứng dụng chia sẻ file qua LAN PHẦN 3: NỘI DUNG CHƯƠNG TRÌNH Giao diện chương trình • Giao diện Server: • Giao diện Client Bài Tập Lớn Mạng Máy Tính 8/12 Ứng dụng chia sẻ file qua LAN Chức lớp Cần using thêm vào Client Server: 2.1 Server • Lớp StartReceiving() gồm phương thức xử lý lắng nghe, thiết lập kết nối, nhận tập tin, xuất thông báo, cập nhật tiến trình Phương thức sau gọi từ Thread private void StartReceiving() { try { if (tlsServer == null) { tlsServer = new TcpListener(IPAddress.Parse(txtHost.Text), Convert.ToInt32(txtPort.Text)); } this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Starting the server \r\n" }); tlsServer.Start(); this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "OK! Địa là: " + txtHost.Text + " cổng: " + txtPort.Text + "\r\n" }); TcpClient tclServer = tlsServer.AcceptTcpClient(); this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Đã có kết nối tới!\r\n" }); strRemote = tclServer.GetStream(); this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Đã có luồng Stream!\r\n" }); int bytesSize = 0; byte[] downBuffer = new byte[2048]; bytesSize = strRemote.Read(downBuffer, 0, 2048); string FileName = System.Text.Encoding.ASCII.GetString(downBuffer, 0, bytesSize); FileStream strLocal = new FileStream(@txtDuongDan.Text + "/" + FileName, FileMode.OpenOrCreate, FileAccess.Write); downBuffer = new byte[2048]; bytesSize = strRemote.Read(downBuffer, 0, 2048); long FileSize = Convert.ToInt64(System.Text.Encoding.ASCII.GetString(downBuffer, 0, bytesSize)); this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Đang nhận: " + FileName + " (" + FileSize + " bytes)\r\n" }); downBuffer = new byte[2048]; while ((bytesSize = strRemote.Read(downBuffer, 0, downBuffer.Length)) > 0) { strLocal.Write(downBuffer, 0, bytesSize); this.Invoke(new UpdateProgressCallback(this.UpdateProgress), new object[] { strLocal.Length, FileSize }); } Bài Tập Lớn Mạng Máy Tính 9/12 Ứng dụng chia sẻ file qua LAN } finally { this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Đã nhận file Đang đóng luồng Streams.\r\n" }); strRemote.Close(); this.Invoke(new UpdateStatusCallback(this.UpdateStatus), new object[] { "Đóng luồng Stream.\r\n" }); StartReceiving(); } } • Phía Server tạo lắng nghe cổng mà người dùng cài đặt: private void btnStart_Click(object sender, EventArgs e) { thrDownload = new Thread(StartReceiving); thrDownload.Start(); } • Server cần chọn đường dẫn lưu file kích vào “Save as” 2.2 Client • Client kết nối tới máy chủ Server thông qua địa IP cổng Server Chỉ kết nối tới Server Server trạng thái lắng nghe private void ConnectToServer(string ServerIP, int ServerPort) { tcpClient = new TcpClient(); try { tcpClient.Connect(ServerIP, ServerPort); txtLog.Text += "Kết nối thành công tới Server !!!\r\n"; } catch (Exception exMessage) { txtLog.Text += exMessage.Message; } } private void btnConnect_Click(object sender, EventArgs e) { ConnectToServer(txtServer.Text, Convert.ToInt32(txtPort.Text)); } Bài Tập Lớn Mạng Máy Tính 10/12 Ứng dụng chia sẻ file qua LAN • Sau kết nối thành công tới Server, Client tiến hành gửi liệu sang Server private void btnSend_Click(object sender, EventArgs e) { if (tcpClient.Connected == false) { ConnectToServer(txtServer.Text, Convert.ToInt32(txtPort.Text)); } if (openFile.ShowDialog() == DialogResult.OK) { txtLog.Text += "Gửi thông tin file.\r\n"; strRemote = tcpClient.GetStream(); byte[] byteSend = new byte[tcpClient.ReceiveBufferSize]; fstFile = new FileStream(openFile.FileName, FileMode.Open, FileAccess.Read); BinaryReader binFile = new BinaryReader(fstFile); FileInfo fInfo = new FileInfo(openFile.FileName); string FileName = fInfo.Name; byte[] ByteFileName = new byte[2048]; ByteFileName = System.Text.Encoding.ASCII.GetBytes(FileName.ToCharArray()); strRemote.Write(ByteFileName, 0, ByteFileName.Length); long FileSize = fInfo.Length; byte[] ByteFileSize = new byte[2048]; ByteFileSize = System.Text.Encoding.ASCII.GetBytes(FileSize.ToString().ToCharArray()); strRemote.Write(ByteFileSize, 0, ByteFileSize.Length); txtLog.Text += "Đang gửi file " + FileName + " (" + FileSize + " bytes)\r\n"; int bytesSize = 0; byte[] downBuffer = new byte[2048]; while ((bytesSize = fstFile.Read(downBuffer, 0, downBuffer.Length)) > 0) { strRemote.Write(downBuffer, 0, bytesSize); } txtLog.Text += "File gửi thành cơng.\r\n"; tcpClient.Close(); strRemote.Close(); fstFile.Close(); txtLog.Text += "Đóng luồng Stream !!!\r\n"; } } • Sau tập tin gửi, kết nối đóng lại để giải phóng tài nguyên Để chuẩn bị cho kết nối tới, Server bắt đầu lại từ đầu Bài Tập Lớn Mạng Máy Tính 11/12 Ứng dụng chia sẻ file qua LAN 2.3 Demo chương trình Bài Tập Lớn Mạng Máy Tính 12/12

Ngày đăng: 12/07/2016, 21:28

Từ khóa liên quan

Mục lục

  • TRANG KÝ NHẬN

  • PHẦN 1: GIỚI THIỆU

  • PHẦN 2: CƠ SỞ LÝ THUYẾT

    • 1. Giao thức TCP/IP

    • PHẦN 3: NỘI DUNG CHƯƠNG TRÌNH

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

Tài liệu liên quan