1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo bài tập lớn lập trình socket ứng dụng chia sẻ file dùng cơ chế client server

21 15 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 2,43 MB

Nội dung

Hầu hết dữ liệu truyền qua mạng là truyền dưới dạng file.Truyền file qua mạng là một trong những ứng dụng phổ biến trên mạng LAN vàInternet như: tải xuống các file từ một máy chủ file ở

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG ĐIỆN – ĐIỆN TỬ

-oOo-Đề tài:

BÁO CÁO BÀI TẬP LỚN

MẠNG MÁY TÍNH

Lập trình SOCKET ứng dụng chia sẻ file dùng cơ chế client-server

Giảng viên hướng dẫn: TS Trần Quang Vinh

Sinh viên thực hiện:

Trịnh Thanh Chương 20192725Nguyễn Long Cầm 20192715

Lê Quang HưngLưu Văn Bắc

2019289120192705

Hà Nội, 04-2023

Trang 2

LỜI NÓI ĐẦU

Ngày nay, công nghệ thông tin đã và đang được ứng dụng sâu rộng trong mọilĩnh vực Đây là công cụ không thể thiếu cho việc phát triển thương mại, vận hành

hệ thống trong các tổ chức và phục vụ nhu cầu công việc, giải trí cá nhân Trong đó,mạng máy tính và internet đóng vai trò hết sức quan trọng Máy tính đã trở thànhcông cụ đắc lực và không thể thiếu của con người Các tổ chức, công ty cần phải xâydựng hệ thống mạng máy tính riêng cho mình để trao đổi dữ liệu giữa các bộ phận

Dữ liệu được truyền đi trên mạng phải đảm bảo dữ liệu được truyền tới đích nhanhchóng và đúng đắn Hầu hết dữ liệu truyền qua mạng là truyền dưới dạng file.Truyền file qua mạng là một trong những ứng dụng phổ biến trên mạng LAN vàInternet như: tải xuống các file từ một máy chủ file ở xa, gửi/nhận thư điện tử.Truyền file qua mạng dựa trên Socket TCP là một phương pháp truyền file có độ tincậy cao bởi vì trước khi truyền nó cần thiết lập thành công kênh truyền dữ liệu.Không phải là phương pháp thay thế hoàn toàn những phương pháp truyền file khác

mà ta đã từng sử dụng Bản chất của phương pháp truyền file dựa vào Socket TCP lànhằm tăng thêm hiệu xuất làm việc Đó là lý do chúng em chọn đề tài: “Lập trìnhSOCKET ứng dụng chia sẻ file sử dụng cơ chế client – server”

Chúng em cũng xin cảm ơn thầy TS Trần Quang Vinh đã tận tình hướng dẫn, giúp

đỡ chúng em để hoàn thành tốt đề tài này Chúng em chúc thầy luôn mạnh khỏe,công tác tốt và hướng dẫn nhiều thế hệ sinh viên hơn nữa

Trang 3

MỤC LỤC

DANH MỤC HÌNH ẢNH 4

CHƯƠNG 1: GIỚI THIỆU CHUNG 5

1.1 Tổng quan về mạng máy tính 5

1.1.1 Khái niệm 5

1.1.2 Phương thức hoạt động của mạng máy tính 5

1.2 Tổng quan về TCP/IP 6

1.2.1 Bộ giao thức liên mạng (IP Protocol) 6

1.2.2 Bộ giao thức TCP 9

CHƯƠNG 2: NỘI DUNG 11

2.1 Lập trình SOCKET 11

2.1.1 Khái niệm 11

2.1.2 Phương thức hoạt động của Socket 11

2.1.3 Nguyên tắc 12

2.2 Lập trình C# 15

2.3 Chạy chương trình 16

KẾT LUẬN 20

DANH MỤC TÀI LIỆU THAM KHẢO 21

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1 1: Mô hình mạng cục bộ LAN 5

Hình 1 2: Cấu trúc gói tin IP 7

Hình 1 3: Cấu trúc của địa chỉ IP 8

Hình 1 4: Phân lớp địa chỉ IP 8

Hình 1 5: Cấu trúc TCP Header 10

Hình 2 1: Lập trình SOCKET 11

Hình 2 2: Kết nối Client - Server 13

Hình 2 3: Mô hình Client - Server 13

Hình 2 4: Quá trình nhận dữ liệu qua socket 14

Hình 2 5: Ngôn ngữ C# 15

Hình 2 6: Giao diện Server ban đầu 17

Hình 2 7: File cần gửi 18

Hình 2 8: Thông báo gửi file thành công 18

Hình 2 9: Thông báo nhận thành công 19

Hình 2 10: Kết quả thu được 19

Trang 5

CHƯƠNG 1: GIỚI THIỆU CHUNG

1.1 Tổng quan về mạng máy tính

1.1.1 Khái niệm

Mạng máy tính hay hệ thống mạng (computer network hay network system)

là sự kết hợp các máy tính lại với nhau thông qua các thiết bị nối kết mạng và phương tiện truyền thông (giao thức mạng, môi trường truyền dẫn) theo một cấu trúcnào đó và các máy tính này trao đổi thông tin qua lại với nhau

Hình 1 1: Mô hình mạng cục bộ LAN

1.1.2 Phương thức hoạt động của mạng máy tính

Một số thiết bị chyên dụng như thiết bị chuyển mạch, bộ định tuyến và điểmtruy cập tạo thành một hệ thống của mạng máy tính

Công tắc kết nối giúp bảo mật nội bộ của máy tính với các thiết bị khác đượckết nối mạng trong tổ chức.Điểm truy cập chính là công tắc kết nối thiết bị với mạng mà không cần sử dụng dây cáp

Bộ định tuyến kết nối mạng với các nhà mạng khác và hoạt động giống như một nhà điều phối Bộ định tuyết kết nối mạng bên trong nhà và doanh nghiệp vớithế giơi và giúp bảo vệ thông tin khỏi các mối đe dọa bảo mật bên ngoài

Công tắc xác định duy nhất một thiết bị bằng địa chỉ MAC, bộ định tuyến xácđịnh duy nhất kết nối mạng của thiết bị bằng dịa chỉ IP được chỉ định mạng

Trang 6

Địa chỉ MAC và IP xác định duy nhất các thiết bị và kết nối mạng tương ứngtrong một mang.

1.2 Tổng quan về TCP/IP

1.2.1 Bộ giao thức liên mạng (IP Protocol)

Các giao thức liên mạng là bộ giao thức cho các hệ thống mở nổi tiếng nhấttrên thế giới bởi vì chúng có thể được sử dụng để giao tiếp qua bất kỳ các liên mạngnào cũng như thích hợp cho các giao tiếp trong mạng LAN và mạng WAN Các giaothức liên mạng bao gồm một bộ các giao thức truyền thông, trong đó nổi tiếng nhất

là Giao thức điều khiển truyền tải (TCP - Transmission Control Protocol) và Giaothức liên mạng (IP – Internet Protocol) hoạt động ở tầng 4 và tầng 3 trên mô hìnhOSI

Ngoài hai giao thức này, bộ giao thức IP còn đặc tả nhiều giao thức cho tầngứng dụng, ví dụ như giao thức cho dịch vụ thư điện tử, giao thức mô phỏng thiết bịđầu cuối và giao thức truyền tải tập tin Bộ giao thức liên mạng lần đầu tiên đượcphát triển vào giữa những năm của thập niên 70 khi Văn phòng các dự án nghiêncứu chuyên sâu của bộ quốc phòng Mỹ (DARPA-Defense Advanced ResearchProjects Agency) quan tâm đến việc xây dựng một mạng chuyển mạch gói(packetswitched network) cho phép việc trao đổi thông tin giữa các hệ thống máytính khác nhau của các viện nghiên cứu trở nên dễ dàng hơn Sau đó TCP/IP đượctích hợp vào hệ điều hành UNIX phiên bản BSD (Berkeley Software Distribution)trở thành nền tảng cho mạng Internet và dịch vụ WWW (World Wide Web).Giao thức liên mạng IP (Internet Protocol) là một giao thức mạng hoạt động ởtầng 3 của mô hình OSI, nó qui định cách thức định địa chỉ các máy tính và cáchthức truyền tải các gói tin qua một liên mạng Cùng với giao thức TCP, IP trở thànhtrái tim của bộ giao thức Internet IP có hai chức năng chính: cung cấp dịch vụtruyền tải dạng không nối kết để chuyển tải các gói tin qua một liên mạng; và phânmãnh cũng như tập hợp lại các gói tin để hỗ trợ cho tầng liên kết dữ liệu với kíchthước đơn vị truyền dữ liệu là khác nhau

Cấu trúc IP header

Trang 7

Hình 1 2: Cấu trúc gói tin IP

Version: Xác định phiên bản của giao thức đang được sử dụng

IP Header Length: Xác định chiều dài của phần tiêu đề của gói tin, tính bằngđơn vị là từ -32 bits

Type of Service: Đặc tả mức độ quan trọng mà giao thức phía trên muốn xử

Fragment Offset: Biểu thị vị trí của phân đoạn dữ liệu so với vị trí ban đàucủa gói dữ liệu gốc, nó cho phép máy nhận xây dựng lại gói tin ban đầu.Time to live: Lưu giữ bộ đếm thời gian, giá trị sẽ được giảm dần đến khi nó

có giá trị là 0 thì gói tin sẽ bị xóa; giúp ngăn ngừa tình trạng gói tin đượctruyền đi lòng vòng không bao giờ đến được đích

Protocol: Biểu hiện giao thức ở tầng trên sẽ nhận gói tin khi nó đã được giaothức IP xử lý

Header Checksum: kiểm tra tính toàn vẹn của phần tiêu đề

Source address: Địa chỉ của máy gửi gói tin

Destination address: Địa chỉ của máy nhận gói tin

Trang 8

Options: Tùy chọn cho phép để hỗ trợ một số vấn đề, chẳng hạn vấn đề bảo mật.

Data: Chứa dữ liệu của tầng trên gửi xuống cần truyền đi

Cấu trúc địa chỉ IP

Mỗi máy tính trên mạng TCP/IP phải được gán một địa chỉ luận lý có chiềudài 32 bits, gọi là địa chỉ IP

Hình 1 3: Cấu trúc của địa chỉ IP

32 bits của địa chỉ IP được chia thành 2 phần: Phần nhận dạng mạng(network id) và phần nhận dạng máy tính (Host id) Phần nhận dạng mạng đượcdùng để nhận dạng một mạng và phải được gán bởi Trung tâm thông tin mạngInternet (InterNIC – Internet Network Information Center) nếu muốn nối kết vàomạng Internet Phần nhận dạng máy tính dùng để nhận dạng một máy tính trong một

mạng

Hình 1 4: Phân lớp địa chỉ IP

Trang 9

1.2.2 Bộ giao thức TCP

Transmission Control Protocol (TCP) là giao thức tiêu chuẩn trên Internet đảm bảo trao đổi thành công các gói dữ liệu giữa các thiết bị qua mạng TCP là giao thứctruyền tải cơ bản cho nhiều loại ứng dụng, bao gồm máy chủ web và trang web, ứngdụng email, FTP và các ứng dụng ngang hàng

TCP hoạt động với giao thức Internet (IP) để chỉ định cách dữ liệu được trao đổitrực tuyến IP chịu trách nhiệm gửi từng gói đến đích của nó, trong khi TCP đảm bảo rằng các byte được truyền theo thứ tự mà chúng được gửi mà không có lỗi hoặcthiếu sót nào Hai giao thức kết hợp với nhau được gọi là TCP/IP

Phương thức hoạt động của TCP

Máy khách gửi cho máy chủ một gói SYN — một yêu cầu kết nối từ portnguồn của nó đến port đích đến của máy chủ

Máy chủ phản hồi bằng gói SYN/ACK, xác nhận việc nhận được yêu cầu kếtnối

Máy khách nhận gói SYN/ACK và trả lời bằng gói ACK của chính nó

Sau khi kết nối được thiết lập, TCP hoạt động bằng cách chia nhỏ dữ liệu đãtruyền thành các segment (phân đoạn), mỗi segment được đóng gói thành một gói

dữ liệu và được gửi đến đích của nó

Cấu trúc TCP Header

Trang 10

Hình 1 5: Cấu trúc TCP Header

Source port (16 bit): Số cổng của thiết bị gửi

Destination port (16 bit): Số cổng của thiết bị nhận

Sequence number (32 bit): Dùng để đánh số thứ tự gói tin (từ số sequense

nó sẽ tính ra được số byte đã được truyền)

Acknowledgment number (32 bit): Dùng để báo đã nhận được gói tin nào vàmong nhận được byte mang số thứ tự nào tiếp theo

Data Offset (4 bit): Cho biết toàn bộ header dài bao nhiêu tính theo đơn vịword (1 Word = 4 byte)

RSV (4 bit): Đều được thiết lập bằng 0

Flags (9 bit): Được sử dụng để thiết lập kết nối, gửi dữ liệu và chấm dứt kêtnối

Windows (16 bit): Số lượng byte được thiết bị sẵn sàng tiếp nhận.Checksum (16 bit): Kiểm tra lỗi của toàn bộ TCP segment

Urgent pointer (16 bit): Sử dụng trong trường hợp cần ưu tiên dữ liệu.Options (tối đa 32 bit): Cho phép thêm vào TCP các tính năng khác

Trang 11

CHƯƠNG 2: NỘI DUNG2.1 Lập trình SOCKET

2.1.1 Khái niệm

Socket là một điểm cuối end-point trong liên kết truyền thông hai chiều biểu diễnkết nối giữa Client – Server Các lớp Socket được rang buộc với một cổng port để cátầng TCP có thể định danh tương ứng mà dữ liệu sẽ được gửi tới

Hình 2 1: Lập trình SOCKETĐịa chỉ Socket có dạng: {IP Address; Port Number}

Các loại Socket:

Socket hướng kết nối (TCP Socket)

Socket không hướng kết nối (UDP Socket)

Raw Socket

2.1.2 Phương thức hoạt động của Socket

Chức năng của Socket chính là kết nối giữa Client – Server thông qua TCP/IP vàUDP để truyền cũng như nhận dữ liệu qua Internet Giao diện Socket chỉ có thể hoạtđộng khi đã có số hiệu cổng của 2 ứng dụng cần trao đổi dữ liệu và thông số IP.Socket chỉ hoạt động khi 2 ứng dụng cần truyền thông tin đã đáp ứng đủ cácđiều kiện:

2 ứng dụng có thể cùng nằm trên một máy hoặc nằm trên 2 máy khác nhau

Trang 12

Nếu ứng dụng cùng nằm trên một máy thì số hiệu cổng phải không trùng với nhau.

Tại phía server:

Thông thường, một chương trình server chạy trên một máy tính cụ thể,chương trình này có một socket (server socket), socket được xác định bởi portnumber cụ thể Các chương trình cụ thể Các chương tình cụ thể phục vụ trên serverchỉ chờ đợi, lắng nghe tại port number của nó để phục phục vụ khi có client kết nối.Tại phía client:

Các client biết địa chỉ của máy tính trên đó chương trình server đang chạy vàdanh sách các cổng máy chủ đang lắng nghe Để thực hiện kết nối, Client cố gắngtạo một liên kết với máy chủ tại cổng mà chương trình máy chủ đang lắng nghe.Client cũng phải tự định danh chính nó với server để gắn với một cổng địa phươngcái sẽ được dùng trong suốt quá trình kết nối này Thông thường nó được gán bởi hệđiều hành

Trang 13

Hình 2 2: Kết nối Client - Server

Hình 2 3: Mô hình Client - ServerNếu chương trình máy chủ chấp nhận kết nối của client Khi chấp nhận, máychủ có được một socket mới bị ràng buộc vào vùng cổng cùng cổng địa phương vàthông tin đầu cuối (remote endpoint) của nó chính là port number của client Nó đãtạo ra một socket mới để chăm sóc client vừa được chấp nhận kết nối và tiếp tụclắng nghe tại ổ cắm ban đầu (Server Socket) cho các yêu cầu khác kết nối

Về phía Client, nếu kết nối được chấp nhận, một ổ cắm được tạo thành công

và Client có thể sử dụng socket để giao tiếp với chương trình chủ Các Client và

Trang 14

server có thể giao tiếp bằng cách ghi hay đọc từ ổ cắm của chúng.

Hình 2 4: Quá trình nhận dữ liệu qua socket

Ta có thể chia quá trình nhận dữ liệu qua socket ở giữa Client và Server ở hình 2.4thành 4 giai đoạn như sau:

Trang 15

Giai đoạn 1: Server tạo Socket, gán số hiệu cổng và lắng nghe yêu cầu nối kết Server sẵn sàng phục vụ Client.socket(): Server yêu cầu tạo một socket

để có thể sử dụng các dịch vụ của tầng vận chuyển

bind(): Server yêu cầu gán số hiệu cổng (port) cho socket

listen(): Server lắng nghe các yêu cầu nối kết từ các client trên cổng đãđược gán

Giai đoạn 2: Client tạo Socket, yêu cầu thiết lập một nối kết với Server.socket(): Client yêu cầu tạo một socket để có thể sử dụng các dịch vụ củatầng vận chuyển, thông thường hệ thống tự động gán một số hiệu cổng còn rảnh cho socket của Client

connect(): Client gởi yêu cầu nối kết đến server có địa chỉ IP và Port xácđịnh

accept(): Server chấp nhận nối kết của client, khi đó một kênh giao tiếp ảođược hình thành, Client và server có thể trao đổi thông tin với nhau thông qua kênh ảo này

Giai đoạn 3: Trao đổi thông tin giữa Client và Server

Sau khi chấp nhận yêu cầu nối kết, thông thường server thực hiện lệnh read() và nghẽn cho đến khi có thông điệp yêu cầu (Request Message) từclient gởi đến

Server phân tích và thực thi yêu cầu Kết quả sẽ được gởi về client bằnglệnh write()

Sau khi gởi yêu cầu bằng lệnh write(), client chờ nhận thông điệp kết quả(ReplyMessage) từ server bằng lệnh read()

Giai đoạn 4: Kết thúc phiên làm việc

Các câu lệnh read(), write() có thể được thưc hiện nhiều lần (ký hiệubằng hình ellipse)

Kênh ảo sẽ bị xóa khi Server hoặc Client đóng socket bằng lệnh close()

Dữ liệu ghi vào luồng đầu ra trên Socket của Client sẽ nhận được trên luồngđầu vào chủ Socket tại server Và ngược lại dữ liệu ghi vào luồng đầu ra trên Socketcủa Server sẽ nhận được trên luồng đầu vào của Socket tại Client

2.2 Lập trình C#

Hình 2 5: Ngôn ngữ C#

Trang 16

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft,

là phần khởi đầu cho kế hoạch NET của họ Microsoft phát triển C# dựa trên C++

và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic,Delphi và Java

C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổitiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC

C# là một ngôn ngữ lập trình thuần hướng đối tượng Lập trình hướng đối tượng (OOP: Object-oriented programming) là một phương pháp lập trình có 4 tínhchất Đó là tính trừu tượng (abstraction), tính đóng gói (encapsulation), tính đa hình(polymorphism) và tính kế thừa (inheritance) C# hỗ trợ cho chúng ta tất cả những đặc tính trên

2.3 Chạy chương trình

2.3.1 Giới thiệu

Trao đổi dữ liệu giữa hai máy tính trong mạng thực chất là sự trao đổi dữ liệugiữa hai chương trình ứng dụng chạy trên hai máy tính đó Một chương trình đượcgán nhãn là server và một chương trình được gán nhãn là client, phương pháp sửdụng phổ biến là lập trình ứng dụng mạng dựa trên cơ chế socket Trong chươngtrình này sẽ trình bày một ứng dụng lập trình socket TCP xây dựng chương trìnhchia sẻ file qua mạng bằng C#

2.3.2 Phân tích chương trình

Chương trình truyền file sử dụng socket qua mạng LAN được chia làm 2 phần: Server và Client

Server: Phần mềm tại Server sẽ chạy đầu tiên

Server sẽ thông báo đã hoạt động và sẵn sàng nhân file.Client: Sau khi server kích hoạt xong, tiến hành chạy ở Client.Chọn file cần truyền bằng cách nhấn truyền đường dẫn để chọn file có sẵn trong máy

Sau khi Server truyền file thành công Để nhận file , chọn thử mục Receive File bây giờ đã có trong đường dẫn nhận file đã cài đặt

Để truyền các file tiếp theo làm tương tự những bước trên

Ngày đăng: 13/06/2024, 10:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w