Tải bản đầy đủ (.pdf) (23 trang)

Bài tập lớn mạng máy tính lập trình socket ứng dụng chia sẻ file sử dụng cơ chế client server

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (491.18 KB, 23 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG

BÁO CÁO BÀI TẬP LỚN MÔN
MẠNG MÁY TÍNH
Đề tài: 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

STT Họ và tên

MSSV

Lớp

1

Mai Văn Dũng

20140795

Điện tử 01 – K59

2

Trần Văn Hà

20141325


Điện tử 04 – K59

3

Nguyễn Ngọc Hiếu

20141528

Điện tử 07 – K59

4

Nghiêm Hoàng Long

20142663

Điện tử 06 – K59

5

Nguyễn Thị Mát

20142829

Điện tử 05 – K59

Hà Nội, tháng 11/2017


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH


MỤC LỤC
MỤC LỤC ........................................................................................................................ 1
DANH MỤC HÌNH VẼ, BẢNG BIỂU ........................................................................... 2
LỜI NÓI ĐẦU ................................................................................................................. 3
CHƯƠNG 1: GIỚI THIỆU CHUNG............................................................................... 4
1.1. Tổng quan về mạng máy tính ............................................................................. 4
1.2. Tổng quan về TCP/IP ......................................................................................... 5
1.2.1. Bộ giao thức liên mạng (IP Protocol) .......................................................... 5
1.2.2. Bộ giao thức TCP ........................................................................................ 8
CHƯƠNG 2: NỘI DUNG ................................................................................................ 9
2.1. Lập trình SOCKET ............................................................................................. 9
2.1.1. Khái niệm ..................................................................................................... 9
2.1.2. Mô hình TCP Socket.................................................................................... 9
2.1.3. Nguyên tắc ................................................................................................. 10
2.2. Lập trình C# ...................................................................................................... 12
2.2.1. Giới thiệu C#.............................................................................................. 12
2.2.2. Một số tính chất của ngôn ngữ C# ............................................................. 13
2.2.3. Các dạng chương trình ứng dụng với C# ................................................... 15
2.3. Đặc tả kĩ thuật ................................................................................................... 16
2.3.1. Giới thiệu ................................................................................................... 16
2.3.2. Phân tích chương trình ............................................................................... 17
2.3.3. Giao diện chương trình .............................................................................. 18
KẾT LUẬN .................................................................................................................... 21
DANH MỤC TÀI LIỆU THAM KHẢO ....................................................................... 22

1


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH


DANH MỤC HÌNH VẼ, BẢNG BIỂU
Hình 1.1. Mô hình mạng cục bộ - LAN ........................................................................... 4
Hình 1.2. Cấu trúc gói tin IP ............................................................................................ 6
Hình 1.3. Cấu trúc địa chỉ IP ............................................................................................ 7
Hình 1.4. Phân lớp địa chỉ IP ........................................................................................... 8
Hình 1.5. TCP Header ...................................................................................................... 8
Hình 2. 1. Kết nối TCP..................................................................................................... 9
Hình 2.2. Yêu cầu kết nối đến máy chủ ......................................................................... 11
Hình 2.3. Mô hình kết nối tổng quát .............................................................................. 11
Hình 2.4. Socket program giải phóng port ..................................................................... 12
Hình 2.5. Quá trình nhận dữ liệu qua Socket ................................................................. 12
Hình 2.6. Giao diện chính của chương trình phía Server............................................... 18
Hình 2.7. Giao diện Server khi chọn file và đợi kết nối ................................................ 19
Hình 2.8. Server gửi file cho Client ............................................................................... 19
Hình 2.9. Giao diện chính của chương trình phía Client ............................................... 20
Hình 2.10. Client sau khi kết nối Server và nhận file .................................................... 20
Hình 2.11. Lưu file vào thư mục đã chọn ...................................................................... 20

2


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

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ọi lĩnh
vực kinh tế - xã hội - y tế… Đâ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, doanh nghiệp 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
quyết định sự tồn tại của các tổ chức, doanh nghiệp. Máy tính đã trở thành công cụ đắc

lực và không thể thiếu của con người. Các tổ chức, công ty hay các cơ quan cần phải xây
dựng hệ thống mạng máy tính cho riêng 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 nhanh chó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ó độ tin cậ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ình SOCKET ứ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

3


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

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úc nà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. Lợi ích của mạng máy tính
Lợi ích của mạng máy tính như sau:


Mạng tạo khả năng dùng chung tài nguyên cho các người dùng



Mạng cho phép nâng cao độ tin cậy



Mạng giúp cho công việc đạt hiệu suất cao hơn



Tiết kiệm chi phí.



Tăng cường tính bảo mật thông tin



Việc phát triển mạng máy tính đã tạo ra nhiều ứng dụng mới

4


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

1.2. Tổng quan về TCP/IP
1.2.1.


Bộ giao thức liên mạng (IP Protocol)
Giới thiệu

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ất trê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ạng nào cũng
như thích hợp cho các giao tiếp trong mạng LAN và mạng WAN. Các giao thứ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à Giao thức liên mạng (IP
– Internet Protocol) hoạt động ở tầng 4 và tầng 3 trên mô hình OSI. 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 được phá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ên cứu chuyên sâu của bộ quốc phòng Mỹ
(DARPA-Defense Advanced Research Projects 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áy tính khác nhau của các viện nghiên cứu trở nên dễ dàng hơn. Với
ý tưởng nối các hệ thống máy tính không đồng nhất lại với nhau, DARPA đã cấp kinh
phí nghiên cứu cho đại học Stanford, Bolt, Beranek, and Newman (BBN) về vấn đề này.
Kết quả của những nổ lực phát triển của dự án này là bộ giao thức Liên mạng đã được
hoàn thành vào những năm cuối của thập niên bảy mươi. Sau đó TCP/IP được tí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, thường gọi là giao thức 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ách thức truyền tải các gói tin qua một liên mạng. IP được đặc tả trong bảng báo
cáo kỹ thuật có tên RFC (Request For Comments) mã số 791 và là giao thức chủ yếu

trong Bộ giao thức liên mạng. Cùng với giao thức TCP, IP trở thành trá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

5


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH
để chuyển tải các gói tin qua một liên mạng; và phân mã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ích thước đơn vị truyền dữ liệu là khác nhau


IP header

Hình 1.2. Cấu trúc gói tin IP
Ý nghĩa của các trường được mô tả như sau:


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



Total Length: Đặc tả chiều dài, tính bằng type, của cả gói tin IP, bao gồm cả
phần dữ liệu và tiêu đề.




Indentification: Số nguyên nhận dạng gói tin dữ liệu hiện hành. Trường này được
sử dụng để lắp ráp lại các phân đoạn của gói tin.



Flags: Gồm 3 bits, bit có trọng số nhỏ để xác định gói tin có bị phân đoạn hay
không. Bit thứ 2 xác định có phải đây là phân đoạn cuối cùng của gói tin hay
không. Bit có trọng số lớn nhất chưa sử dụng.



Fragment Offset: Biểu thị vị trí của phân đoạn dữ liệu so với vị trí ban đàu củ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. Điều này giúp ngăn ngừa tình trạng gói tin
được truyền đi lòng vòng không bao giờ đến được đích.

6


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH


Protocol: Biểu hiện giao thức ở tầng trên sẽ nhận gói tin khi nó đã được giao
thứ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



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ều dài 32
bits, gọi là địa chỉ IP.

Hình 1.3. Cấu trúc đị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 được dùng để nhận dạng một
mạng và phải được gán bởi Trung tâm thông tin mạng Internet (InterNIC - Internet
Network Information Center) nếu muốn nối kết vào mạ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

7


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

Hình 1.4. Phân lớp địa chỉ IP
1.2.2.

Bộ giao thức TCP

 Giới thiệu
TCP là giao thức vận chuyển tinh vi hơn, dùng để cung cấp dịch vụ vận chuyển tin
cậy, hướng nối kết theo kiểu truyền thông tin bằng cách phân luồng các bytes. TCP là
giao thức truyền hai hướng đồng thời, nghĩa là mỗi một nối kết hỗ trợ hai luồng bytes
chạy theo hai hướng. Nó cũng bào gồm một cơ chế điều khiển thông lượng cho mỗi
luồng bytes này, để cho phép bên nhận giới hạn lượng dữ liệu mà bên gởi có thể truyền
tại một thời điểm nào đó. TCP cũng hỗ trợ cơ chế đa hợp, cho phép nhiều tiến trình trên
một máy tính có thể đồng thời thực hiện đối thoại với đối tác của chúng
 TCP header

Hình 1.5. TCP Header
8


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

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

2.1.1.

Khái niệm

Một Socket là một điểm cuối của một giao tiếp 2 chiều giữa hai chương trình chạy
trên một mạng. Socket được gắn với một cổng cụ thể để tầng TCP có thể định danh được
ứng dụng mà dữ liệu gửi tới. Đị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.

Mô hình TCP Socket

TCP là một giao thức có liên kết, nghĩa là cần phải thiết lập liên kết giữa hai thực
thể TCP trước khi chúng trao đổi dữ liệu với nhau. Một tiến trình ứng dụng trong một
máy tính truy nhập vào các dịch vụ của giao thức TCP thông qua một cổng port của TCP.
Số hiệu cổng TCP được thể hiện bởi 2 bytes.

Hình 2. 1. Kết nối TCP


9


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH
Một cổng TCP kết hợp với địa chỉ IP tạo thành một đầu nối TCP/IP (socket) duy
nhất trong liên kết mạng. Dịch vụ TCP được cung cấp nhờ một kiên kết logic giữa một
cặp đầu nối TCP/IP. Một đầu nối TCP/IP có thể tham gia nhiều liên kết với các đầu nối
TCP/IP ở xa khác nhau. Trước khi truyền dữ liệu giữa hai trạm cần thiết lập một liên kết
TCP giữa chúng và khi không còn nhu cầu truyền dữ liệu thì liên kết đó sẽ được giải
phóng.
2.1.3.

Nguyên tắc

Mô hình client-server là một mô hình nổi tiếng trong mạng máy tính, được áp dụng
rất rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình này là máy
con (đóng vài trò là máy khách) gửi một yêu cầu (request) đến máy chủ (đóng vai trò
người cung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về cho máy khách.
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 port number cụ thể. Các
chương trình cụ thể. Các chương tình cụ thể phục vụ trên server chỉ 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ắng tạ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ương cá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.


10


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

Hình 2.2. Yêu cầu kết nối đến máy chủ

Hình 2.3. Mô hình kết nối tổng quát
Nếu mọi việc suôn sẻ chương trình máy chủ chấp nhận kết nối của client. Khi chấp
nhận, máy chủ 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ục
lắng nghe tại ổ cắm ban đầu (Server Socket) cho các yêu cầu khác kết nối.

11


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

Hình 2.4. Socket program giải phóng port
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à server có thể giao tiếp bằng cách ghi hay đọc từ ổ cắm của chúng.

Hình 2.5. Quá trình nhận dữ liệu qua Socket
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 Socket củ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#

2.2.1.

Giới thiệu C#

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
12


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH
trrê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ổi tiếng với
các sản phẩm Turbo Pascal, Delphi, J++, WFC.
2.2.2.


Một số tính chất của ngôn ngữ C#
Hiện đại

Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu
gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc
tính được mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những đặc tính trên.
Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc tính trên phức tạp
và khó hiểu. Tuy nhiên, cũng đừng lo lắng chúng ta sẽ dần dần được tìm hiểu những đặc
tính qua các chương trong cuốn sách này.
Con trỏ được tích hợp vào ngôn ngữ C++. Chúng cũng là nguyên nhân gây ra những
rắc rối của ngôn ngữ này. C# loại bỏ những phức tạp và rắc rối phát sinh bởi con trỏ.
Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn được tích hợp vào ngôn
ngữ, sẽ loại bỏ những vấn đề rắc rối của C++.



Hướng đối tượng

Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là
sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism). C# hỗ
trợ tất cả những đặc tính trên.


Mạnh mẽ và mềm dẻo

Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bản thân
hay là trí tưởng tượng của chúng ta. Ngôn ngữ này không đặt những ràng buộc lên những
việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau như là tạo ra ứng dụng
xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biên dịch cho các
ngôn ngữ khác.


Ít từ khóa
13


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH
C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa được sử dụng
để mô tả thông tin. Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ khóa thì sẽ mạnh
hơn. Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, chúng ta có
thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào. Bảng
sau liệt kê các từ khóa của ngôn ngữ C#.
abstract


as

base

bool

break

byte

case

catch

char

checked

class

const

continue

decimal

default

delegate


do

double

else

enum

event

explicit

extern

false

finally

fixed

float

for

foreach

goto

if


implicit

in

in (generic
modifier)

int

interface

internal

is

lock

long

namespace

new

null

object

operator

out


out (generic
modifier)

override

params

private

protected

public

readonly

ref

return

sbyte

sealed

short

sizeof

stackalloc


static

string

struct

switch

this

throw

true

try

typeof

uint

ulong

unchecked

unsafe

ushort

using


virtual

void

volatile

while

14


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH
add

alias

ascending

descending

dynamic

from

get

global

group


into

join

let

orderby

partial
(type)

partial
(method)

remove

select

set



Hướng module

Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những
lớp này chứa các phương thức thành viên của nó. Những lớp và những phương thức có
thể được sử dụng lại trong ứng dụng hay các chương trình khác. Bằng cách truyền các
mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồn
dùng lại có hiệu quả.
2.2.3.



Các dạng chương trình ứng dụng với C#
Ứng dụng Windows với Windows Form

Trước tiên, chúng ta cần phân biệt sự khác nhau giữa hai kiểu ứng dụng: Windows
và Web. Khi các ứng dụng Web đầu tiên được tạo ra, người ta phân biệt hai loại ứng
dụng trên như sau: ứng dụng Windows chạy trên Desktop hay trên một mạng cục bộ
LAN (Local-Area Network), còn ứng dụng Web thì được chạy trên Server ở xa và được
truy cập bằng trình duyệt Web (web browser). Sự phân biệt này không còn rõ ràng nữa
vì các ứng dụng Windows hiện nay có xu hướng dùng các dịch vụ của Web. Ví dụ như
phần mềm Outlook chuyển nhận thư thông qua kết nối Web.
.NET cũng có sự phân biệt này, điển hình là có những bộ công cụ thích hợp cho từng
loại ứng dụng: Windows hay Web. Cả hai loại này đều dựa trên khuôn mẫu Form và sử
dụng các điều khiển (Control) như là Buttons, ListBox, Text …


Ứng dụng Web với Web Form

15


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH
Công nghệ .NET được dùng để xây dựng các ứng dụng Web là ASP.NET, nó cung
cấp hai vùng tên khá mạnh và đầy đủ phục vụ cho việc tạo các ứng dụng Web
là System.Web và System.Web.UI
Web Form là bộ công cụ cho phép thực thi các ứng dụng mà các trang Web do nó
tạo động ra được phân phối đến trình duyệt thông qua mạng Internet.
Với Web Forms, ta tạo ra các trang HTML với nội dung tĩnh và dùng mã C# chạy
trên Server để xử lý dữ liệu tĩnh này rồi tạo ra trang Web động, gửi trang này về trình

duyệt dưới mã HTML chuẩn.
Web Forms được thiết để chạy trên bất kỳ trình duyệt nào, trang HTML gửi về sẽ
được gọt giũa sao cho thích hợp với phiên bản của trình duyệt. Ngoài dùng C#, ta cũng
có thể dùng ngôn ngữ VB.NET để tạo ra các ứng dụng Web tương tự.
Web Forms chia giao diện người dùng thành hai phần: phần thấy trực quan (hay UI)
và phần trang mã phía sau của UI. Quan điểm này thì tương tự với Windows Form,
nhưng với Web Forms, hai phần này nằm trên hai tập tin riêng biệt. Phần giao diện UI
được lưu trữ trong tập tin có phần mở rộng là .aspx, còn mã được lưu trữ trong tập tin có
phần mở rộng là .aspx.cs.
Với môi trường làm việc được cung cấp bởi bộ Visual Studio .NET, tạo các ứng
dụng Web đơn giản chỉ là mở Form mới, kéo thả và viết mả quản lý sự kiện thích hợp.
Web Forms được tích hợp thêm một loạt các điều khiển thực thi trên Server, có thể tự
kiểm tra sự hợp lệ của dữ liệu ngay trên máy khách mà ta không phải viết mã mô tả gì
cả.
2.3. Đặc tả kĩ thuật
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ệu giữa
hai chương trình ứng dụng chạy trên hai máy tính đó. Một chương trình được gá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à
16


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH
lập trình ứng dụng mạng dựa trên cơ chế socket. Trong chương trì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ình chia 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


IP: Phần mềm sẽ lấy địa chỉ IP của card mạng tại Server và gán vào ô textbox
của phần địa chỉ IP server



Port: Người dùng nhập số hiệu Port vào ô textbox Port. Số hiệu này sẽ được
Server sử dụng để truyền file.



Sau khi nhập xong địa chỉ Port thì nhấn vào Start để kích hoạt.



Chọn file cần truyền bằng cách nhấn vào Browse để chọn file có sẵn trong
máy. Tại ô textbox sẽ lưa đường dẫn của file đã chọn.



Sau khi browse đến file cần truyền thì nhấn Send để gửi file. Sau khi thực hiện
xong bước này, server sẽ lắng nghe kết nối từ client và khi có một client kết
nối đến, lúc đó sẽ thực hiện việc truyền file.




Trạng thái kết nối truyền file được thể hiện ở phần status.

 Client: Sau khi server kích hoạt xong, tiến hành chạy phần mềm ở Client


IP: Nhập địa chỉ IP của server vào ô textbox IP Server. Địa chỉ này phải trùng
với địa chỉ IP phía Server



Port: Nhập số hiệu Port vào ô textbox Port. Địa chỉ này cũng phải trùng vói số
hiệu port mà Server dùng để truyền file.



Sau khí nhập xong IP và số hiệu Port, Server đã ở chế độ lắng nghe để sẵn
sàng cho việc truyền file, lúc này nhấn nút Connect. Sau bước này, Client đã ở
trạng thái kết nối.



Sau khi Client đã kết nối thành công, File bên phía Server sẽ được truyền đến,
tên file sẽ được lưu trong ô textbox FileName. Tốc độ truyền file nhanh hay
17


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

chậm phụ thuộc vào kích thước file và tốc độ mạng. Đồng thời lúc này phần
mềm phía Server sẽ hiển thị tên file đã truyền đi tại ô ListView.


Lúc này, Client sẽ nhận file bằng cách nhấn nút Save để chọn vị trí lưu file trên
máy Client.



Sau mỗi lượt gửi file thành công, nếu người dùng muốn gửi file tiếp theo, lần
lượt click vào nút Stop ở cả hai phía Server và Client để bắt đầu phiên gửi file
mới. Các bước gửi file thực hiện lại như các bước ở trên.



Tại phần Options lần lượt là các chức năng Help (hướng dẫn sử dụng phần
mềm), About (đội ngũ thiết kế, ngày xuất bản), Exit (thoát phần mềm).

2.3.3.


Giao diện chương trình
Giao diện phía Server

Hình 2.6. Giao diện chính của chương trình phía Server

18


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH


Hình 2.7. Giao diện Server khi chọn file và đợi kết nối

Hình 2.8. Server gửi file cho Client
19


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH


Giao diện phía Client

Hình 2.9. Giao diện chính của chương trình phía Client

Hình 2.10. Client sau khi kết nối Server và nhận file

Hình 2.11. Lưu file vào thư mục đã chọn

20


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

KẾT LUẬN
Trong đề tài này, chúng em đã tìm hiểu được sơ lược về ngôn ngữ C#, lập trình
Socket TCP các nội dung liên quan tới truyền file qua mạng.
Chia sẻ 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 một file từ một máy chủ ở xa, gửi nhận thư điện tử, … Chia sẻ
file qua mạng dựa trên Socket TCP là một phương pháp có độ tin cậ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 phương pháp thay thế hoàn toàn các phương pháp chia sẻ file khác. Bản
chất của phương pháp dựa vào Socket TCP là nhằm tăng thêm hiệu suất làm việc.
Do thời gian có hạn, cũng như trình độ hiểu biết còn hạn chế nên việc nghiên cứu,
tìm hiểu đề tài này chưa thực sự được tốt, đi sâu vào vấn đề cần giải quyết nên chúng em
rất mong nhận được sự góp ý, giúp đỡ từ thầy. Chúng em xin chân thành cảm ơn!

21


BÁO CÁO BÀI TẬP LỚN MẠNG MÁY TÍNH

DANH MỤC TÀI LIỆU THAM KHẢO
[1] Computer Networks 5th By Andrew S. Tanenbaum
[2] TCP/IP Sockets in C, Second Edition: Practical Guide for Programmers By Michael
J. Donahoo
[3]
[4]
[5]
[6]
[7]

22



×