Tải bản đầy đủ (.doc) (28 trang)

Truyền file qua mạng lan

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 (789.69 KB, 28 trang )

Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………



Trang 1


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

NHẬN XÉT CỦA HỘI ĐỒNG BẢO VỆ
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………

………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………………………………………………
Trang 2


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

MỤC LỤC
LỜI NÓI ĐẦU.......................................................................................................................6
TỔNG QUAN VỀ ĐỀ TÀI............................................................................................................7
CHƯƠNG 1 : TỔNG QUAN VỀ LẬP TRÌNH MẠNG......................................................................8
1.1 Giao thức TCP/IP......................................................................................................................8
1.2 Socket...................................................................................................................................... 9
1.3 Port........................................................................................................................................ 9
1.4 Mô hình Client – Server............................................................................................................9

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT.............................................................................................11
2.1.Giới thiệu............................................................................................................................... 11
2.2.Các thuộc tính yêu cầu............................................................................................................11
2.3.Kỹ thuật truyền file................................................................................................................11
2.4.Phương thức SERIALIZATION........................................................................................................................11
2.5.Phương thức DESERIALIZATION...................................................................................................................12
2.6.Phương thức gửi file.....................................................................................................................................12
2.7.Phương thức nhận file..................................................................................................................................12


2.8.Kỹ thuật chia nhỏ và nối file...................................................................................................12

CHƯƠNG 3 : THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH..........................................................13
3.1. Mô tả chức năng..................................................................................................................13
3.2 Phân tích chức năng..............................................................................................................14

CHƯƠNG 4 : TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ...................................................................17
4.1.Microsoft Visual Studio 2008..................................................................................................17
4.1.1.Giới thiệu Microsoft Visual Studio 2008....................................................................................................17
4.1.2.Các chức năng cơ bản Microsoft Visual Studio 2008................................................................................17

4.2.Giới thiệu .NET framework & các thành phần chính................................................................19
4.2.1.Giới thiệu .NET framework........................................................................................................................19
4.2.2.Các thành phần chính .Net framework.....................................................................................................19

4.3.Kết quả các chức năng của chương trình.................................................................................23
4.3.1.Giao diện khi khởi động của chương trình................................................................................................23
4.3.2.Giao diện khi khởi động của server...........................................................................................................24
4.3.3.Chọn File muốn truyền .............................................................................................................................24
4.3.4.Giao diện khi Client chia File và gởi các packet đã chia đến Server .........................................................25
4.3.5.Thông báo gởi các packet đến Server thành công và bắt đầu nối Packet ................................................25
4.3.6. Gởi toàn bộ nội dung của Folder đến Server...........................................................................................26

Trang 3


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng


CHƯƠNG 5 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI........................................................27
5.1.Kết luận................................................................................................................................. 27
5.2.Kết quả đạt được...................................................................................................................27
5.2.1.Những vấn đề còn tồn tại..........................................................................................................................27
5.2.2.Hướng phát triển.......................................................................................................................................27

TÀI LIỆU THAM KHẢO............................................................................................................28

Trang 4


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

DANH MỤC HÌNH VẼ
Hình 1 : Mô Hình TCP/IP..........................................................................................................8
Hình 2 : Cơ chế gọi hàm trong lập trình Socket......................................................................10
Hình 3 : Serialization Process.................................................................................................12
Hình 4 : Quy trình hoạt động Server.......................................................................................14
Hình 5 : Quy trình hoạt động client........................................................................................16
Hình 6 : Các thành phần chính của .Net Framework...............................................................20
Hình 7 : Giao diện khởi động chương trình............................................................................23
Hình 8 : Giao diện khi khởi động server.................................................................................24
Hình 9 : Chọn file muốn truyền..............................................................................................24
Hình 10 : Giao diện khi Client chia file và gửi các packet đã chia đến Server..........................25
Hình 11 : Thông báo gửi các packet đến Server thành công và bắt đầu nối Packet.................25
Hình 12 : Gửi toàn bộ nội dung của Folder đến Server............................................................26
Hình 13 : Kết thúc quá trình gưi nội dung Folder đến Server..................................................26


Trang 5


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

.....................................................................................................................
.....................................................................................................................
.....................................................................................................................
............................................................................................ LỜI NÓI ĐẦU
Hiện nay, vấn đề toàn cầu hoá thông tin và tốc độ phát triển của khoa học công
nghệ diễn ra một cách nhanh chóng. Một kỷ nguyên mới được mở ra–kỷ nguyên của xã
hội hoá thông tin. Công nghệ thông tin và truyền thông phát triển đã đưa thế giới bước
sang thời đại mới – thời đại của công nghệ thông tin . Việc nắm bắt và ứng dụng công
nghệ thông tin trong các lĩnh vực khoa học, kinh tế, xã hội đem lại cho các doanh nghiệp
và các tổ chức thành tựu và lợi ích to lớn.
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 truyền đi trên mạng phải được bảo đảm : Dữ
liệu được chuyển tới đích nhanh chóng và đúng đắn. Hầu hết dữ liệu đưuọc truyền qua
mạng là truyền dưới dạng file.
Nhằm tìm hiểu thấu đáo và sâu hơn một trong số các phương pháp truyền file qua
mang, nhóm chúng em đã chọn đề tài : “Xây dựng ứng dụng truyền file qua mạng LAN “
sử dụng ngôn ngữ C#.
Với lập trình socket TCP sẽ bắt buộc các máy đó phải nối mạng được với nhau. Ta
đã thấy các máy muốn trao đổi dữ liệu mạng, chúng sẽ tạo ra mỗi phía một socket và trao
đổi dữ liệu bằng cách đọc/ghi từ socket TCP. Khi một chương trình tạo ra một socket,
một định danh số gán cho socket. Việc gán số hiệu cổng này cho socket có thể được thực

hiện bởi chương trình hoặc hệ điều hành. Trong mỗi gói tin mà socket gửi đi chưa hai
thông tin để xác định đích đến của gói tin :
• Một địa chỉ mạng để xác định hệ thống sẽ nhận gói tin.
• Một số định danh cổng để nói xác định cho hệ thống đích biết socket TCP
nào sẽ nhận dữ liệu.
Báo cáo sau đây trình bày về đề tài: “Xây dựng ứng dụng truyền file qua mạng
LAN”. Trong khuôn khổ báo cáo, chúng em thực hiện tìm hiểu về các thuật toán cắt xén
file và ghép nối file và xây dựng ứng dụng.

Trang 6


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

TỔNG QUAN VỀ ĐỀ TÀI
1. Bối cảnh và lý do thực hiện đề tài
Với sự phát triển nhanh chóng của Internet như hiện nay, sự truyền file qua mạng
trở thành một nhu cầu bức thiết. Sự cần thiết của nó ai cũng hiểu được. Hiện nay đã có
nhiều chương trình hỗ trợ việc truyền file trên mạng, chẳng hạn như FTP…. Tuy nhiên,
không cần thiết phải sử dụng những chương trình có sẵn mà ta có thể xâu dựng một
chương trình tương tự như thế. Chương trình DATruyenFile là được xây dựng với mục
đích như thế và nhằm để hiểu rõ được cơ chế truyền file và áp dụng những kiến thức đã
học được vào việc lập trình ứng dụng mạng.
2. Mục tiêu của đề tài
Đề tài nhằm tìm hiểu được cơ chế truyền file qua mạng LAN, thông qua đó tìm
hiểu được các giải thuật, thuật toán về cơ chế cắt ghép, chia nhỏ và nối file. Qua đó xây
dựng chương trình ứng dụng lập trình Socket TCP cho phép người dùng truyền file qua
mạng từ máy Client đến Server.

3. Phương pháp triển khai đề tài
 Lập trình Socket Client – Server.
 Tìm hiểu các cơ chế truyền file, thuật toán cắt nối file.
 Thiết kế và lập trình ứng dụng, xây dựng ứng dụng truyền file qua mạng LAN
trong mô hình Client – Server.
4. Kết cấu của đồ án
Đồ án gồm các phần :






Trang 7

Tổng quan về lập trình mạng
Cơ sở lý thuyết
Thiết kế và xây dựng chương trình
Triển khai và đánh giá kết quả
Kết luận và hướng phát triển đề tài


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

CHƯƠNG 1 : TỔNG QUAN VỀ LẬP TRÌNH MẠNG
1.1 Giao thức TCP/IP.
Bộ giao thức TCP/IP, ngắn gọn là TCP/IP (tiếng Anh: Internet protocol suite
hoặc IP suite hoặc TCP/IP protocol suite - bộ giao thức liên mạng), là một bộ các giao

thức truyền thông cài đặt chồng giao thức mà Internet và hầu hết các mạng máy tính
thương mại đang chạy trên đó. Bộ giao thức này được đặt tên theo hai giao thức chính
của nó là TCP (Giao thức Điều khiển Giao vận) và IP (Giao thức Liên mạng). Chúng
cũng là hai giao thức đầu tiên được định nghĩa. Để cho các máy tính trao đổi dữ liệu với
nhau TCP/IP dử dụng mô hình truyền thông 4 tầng hay còn gọi là Mô Hình DoD( Mô
hình của Bộ Quốc Phòng Mỹ). Các tầng trong mô hình này theo thứ tự từ trên xuống là :
• Tầng ứng dụng ( Application Layer)
• Tầng giao vận ( Transport Layer)
• Tầng lien mạng ( Internet Layer)
• Tầng giao diện mạng (Network Interface Layer)

TCP/IP
TCP/IPPROTOCOL
PROTOCOLSUITE
SUITE

APPLICATION
APPLICATION
LAYER
LAYER

Telnet
Telnet

FTP
FTP

TRANSPORT
TRANSPORT
LAYER

LAYER
INTERNET
INTERNET
LAYER
LAYER
NETWORK
NETWORK
INTERFACE
INTERFACE
LAYER
LAYER

SMTP
SMTP

RIP
RIP

TCP
TCP

IPIP

ARP
ARP

ETHERNET
ETHERNET

SNMP

SNMP

UDP
UDP

TOKEN
TOKEN
RING
RING

Hình 1 : Mô Hình TCP/IP

Trang 8

DNS
DNS

IGMP
IGMP

FRAME
FRAME
RELAY
RELAY

ICMP
ICMP

ATM
ATM



Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

1.2 Socket
Socket là một cổng logic mà một chương trình sử dụng để kết nối với một chương
trình khác chạy trên một máy tính khác trên Internet. Chương trình mạng có thể sử dụng
nhiều Socket cùng một lúc, nhờ đó nhiều chương trình có thể sử dụng Internet cùng một
lúc. Có 2 loại Socket:

Stream Socket: Dựa trên giao thức TCP( Tranmission Control Protocol) việc truyền
dữ liệu chỉ thực hiện giữa 2 quá trình đã thiết lập kết nối. Giao thức này đảm bảo dữ liệu
được truyền đến nơi nhận một cách đáng tin cậy, đúng thứ tự nhờ vào cơ chế quản lý
luồng lưu thông trên mạng và cơ chế chống tắc nghẽn.

Datagram Socket: Dựa trên giao thức UDP( User Datagram Protocol) việc truyền dữ
liệu không yêu cầu có sự thiết lập kết nối giữa 2 quá trình. Ngược lại với giao thức
TCP thì dữ liệu được truyền theo giao thức UDP không được tin cậy, có thế không đúng
trình tự và lặp lại. Tuy nhiên vì nó không yêu cầu thiết lập kết nối không phải có những
cơ chế phức tạp nên tốc độ nhanh…ứng dụng cho các ứng dụng truyền dữ liệu nhanh như
chat, game….
1.3 Port
Port xách định duy nhất một quá trình (process) trên một máy trong mạng. Hay nói
cách khác là cách mà phân biệt giữa các ứng dụng.
VD: Khi máy bạn chạy nhiều ứng dụng mạng như Yahoo,Firefox, game
online… .Ví dụ chương Yahoo sử dụng ( port 5150 hay 5050) thì khi ai đó gửi tin nhắn
đến cho bạn, lúc tin nhắn đến máy bạn nó sẽ dựa vào port để nhận biết đó là chương trình
Yahoo ( port 5150) chứ ko pải là chương trình khác. Sau đó thông tin sẽ đc xử lý và hiễn

thị tin nhắn lên.
Một TCP/IP Socket gồm một địa chỉ IP kết hợp với một port ? Xác định duy nhất
một tiến trình (process ) trên mạng.Hay nói cách khác Luồng thông tin trên mạng dựa vảo
IP là để xác định máy một máy trên mạng còn port xác định 1 tiến trình trên 1 máy
1.4 Mô hình Client – Server
Quy trình hoạt động của ứng dụng Server – Client như sau: Server có nhiệm vụ
của là lắng nghe, chờ đợi kết nối từ Client trên địa chỉ IP của mình với PORT được quy
định sẵn. Khi client gởi dữ liệu tới Server thì nó phải giải quyết một công việc là nhận
dữ liệu đó -> xử lý -> trả kết quả lại cho Client.
Client là ứng dụng được phục vụ, nó chỉ gởi truy vấn và chờ đợi kết quả từ Server

Trang 9


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

CƠ CHẾ GỌI HÀM TRONG LẬP TRÌNH SOCKET
CLIENT
CLIENT

SERVER
SERVER

SOCKET()
SOCKET()

SOCKET()
SOCKET()


BIND()
BIND()

CONNECT()
CONNECT()

LISTEN()
LISTEN()

ACCEPT()
ACCEPT()

WRITE()
WRITE()

READ()
READ()

WRITE()
WRITE()
READ()
READ()

CLOSE()
CLOSE()

CLOSE()
CLOSE()


Hình 2 : Cơ chế gọi hàm trong lập trình Socket

Trang 10


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.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 dổi dữ liệu giữa
hai chương trình ứng dụng chạy trên hai máy tính đó. Trong đó, 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. Có nhiều phương pháp
để xây dựng úng dụng mạng nhưng phương pháp phổ biến là lập trình ứng dụng mạng
dựa trên cơ chế Socket. Trong chương này sẽ trình bày một ứng dụng của lập trình
Socket TCP là xây dựng chương trình truyền file qua mạng LAN giữa hai máy tính bằng
C# Socket TCP.
2.2. Các thuộc tính yêu cầu
Phương thức truyền file được sử dụng phải đảm bảo an toàn, đảm bảo sự tin cậy.
Các thuộc tính được yêu cầu là :
 Nguyên vẹn : Người nhận cần có khả năng xác định được thông tin có còn
nguyên vẹn sau quá trình truyền không.
 Xác thực : Người gởi cần có khả năng xác định file đã gởi thành công hay
chưa.
2.3. Kỹ thuật truyền file
Có nhiều phương pháp để xây dựng chương trình truyền file qua mang. Nhưng phổ
biến nhất là lập trình mạng dựa trên cơ chế Socket. Chương trình gán nhãn Server khởi
tạo kết nối và lắng nghe. Chương trình gán nhãn Client Sử dụng lớp tcpclient để kết nối
dến server dùng Networkstrem để tiến hành truyền file gửi tên của file theo phương thức

Serialize. Server tiến hành nhận tên file bằng phương thức Deserialize.
2.4. Phương thức SERIALIZATION
Serialization(System.Runtime.Serialization) là một quá trình để chuyển đổi một cấu trúc
dữ liệu hoặc đối tượng thành một định dạng có thể lưu trữ được (ví dụ như trong một file,
bộ nhớ, hoặc vận chuyển thông qua mạng). Mọi đối tượng muốn được serialize đều phải
được khai báo kèm theo attribute [Serializable]. Ngoài ra, mọi kiểu dữ liệu được sử dụng
trong đối tượng cũng phải tuân theo quy tắc này.
Attribute [Serializable] có nghĩa là sắp xếp theo thứ tự. Khi ta muốn lưu một đối tượng
xuống tập tin trên đĩa để lưu, ta phải định ra trình tự của dữ liệu trong đối tượng.
Khi cần tái tạo lại đối tượng từ thông tin trên tập tin đã lưu trữ, ta sẽ “nạp” đúng
theo trình tự đã định trước đó. Nói chính xác hơn, Serialize là tiến trình biến đổi trạng

Trang 11


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

thái của đối tượng theo một định dạng có thể được lưu trữ hay dịch chuyển(transfer) .Nếu
muốn loại trừ một thành phần (method, field, property,…) không muốn được serialize,
bạn có thể đánh dấu chúng bằng attribute [NonSerialized].

DATABASE
DATABASE

Serialization Process

OBJECT
OBJECT


BYTE
BYTE

FILE
FILE
MEMORY
MEMORY

Hình 3 : Serialization Process
2.5. Phương thức DESERIALIZATION
Sau khi chuyển đổi một cấu trúc dữ liệu hoặc đối tượng thành một định dạng có thể
lưu trữ được (ví dụ như trong một file, bộ nhớ, hoặc vận chuyển thông qua mạng) hay gọi
là Serializetion thì nó có thể được phục hồi để trở lại trạng thái ban đầu trong một môi
trường khác thông qua quá trình DESERIALIZATION. Rất nhiều ngôn ngữ lập trình
hiện nay hỗ trợ kĩ thuật này bao gồm C#, Java, Objective-C, Perl, Python, Ruby, PHP,…
2.6. Phương thức gửi file
o Dung networkstrem để tiến hành truyền file
o Gửi tên của file theo phương thức serialize
o Chia 1 file cần truyền gói nhỏ mỗi gói có kích thước 2048 byte sau đó tiến
hành truyền từng gói nhỏ cho đến khi hết tập tin thì thôi. Trong đó ghi và đọc
file theo phương thức Stream
2.7. Phương thức nhận file
Nhận từng gói nhỏ mỗi gói có kích thước 2048 byte cho đến khi kết thúc file. Trong
đó ghi và đọc file theo phương thức Stream
2.8. Kỹ thuật chia nhỏ và nối file
Kỹ thuật chia nhỏ và nối File ( Split and Join File) chia 1 File cần truyền gói nhỏ mỗi
gói có kích thước 2048 byte sau đó tiến hành truyền từng gói nhỏ cho đến khi hết tập tin
thì thôi.


Trang 12


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

CHƯƠNG 3 : THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH
3.1. Mô tả chức năng
Chương trình cho phép Client gởi File hoặc toàn bộ nội dung của Folder đến
Server. Tuỳ thuộc dung lượng của File muốn truyền sẽ chia thành số lượng Packet khác
nhau. Processbar cho biết tiến trình gởi File cho Server. Sau khi truyền thành công các
Packet Server sẽ nối các Packet lại thành File ban đầu. Dung lượng truyền theo Folder là
không giới hạn.

Trang 13


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

3.2 Phân tích chức năng
Quy trình hoạt động của Chương trình “ Truyền File Qua Mạng LAN”
SERVER
SERVER
Bắt
Bắtđầu
đầu
Tao

TaoTCPListerner
TCPListernervàvàlắng
lắng
nghe
từ
Client
nghe từ Client

Chấp
Chấpnhận
nhậnkết
kết
nối
từ
client
nối từ client
Đúng

Đợi
ĐợiClient
Clientgởi
gởiFile
File

Nhận
NhậnFile
Filehoặc
hoặcThư
Thưmục
mục

Nối
NốiFile
FilevàvàThư
Thưmục
mụcvừa
vừa
nhận
nhận

Đúng

Tiếp
Tiếptục?
tục?
Sai

Kết
Kếtthúc
thúc
Hình 4 : Quy trình hoạt động Server

Trang 14

Sai

Báo
Báolỗilỗi

Kết
Kếtthúc

thúc


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

CLIENT
CLIENT
Bắt
Bắtđầu
đầu
Tạo
TạoTCPClient
TCPClientkết
kếtvối
vối
đến
đếnServer
Server

Kết
Kếtnối
nối
thành
công
thành công

Sai


Báo
Báolỗilỗi

Đúng

Chọn
ChọnFile
Filehoặc
hoặcthư
thưmục
mục
cần
cầngởi
gởiđến
đếnServer
Server

Chia
Chianhỏ
nhỏFile,
File,thư
thưmục
mụctheo
theo
dung
dunglượng
lượngcủa
củaFile
Filehoặc
hoặcthư

thư
mục
mụcmuốn
muốngởi
gởi

Gởi
Gởipacket
packetđãđãchia
chiatớitới
Server
Server

Đúng

Tiếp
Tiếptục?
tục?

Sai

Kết
Kếtthúc
thúc

Trang 15

Kết
Kếtthúc
thúc



Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

Hình 5 : Quy trình hoạt động client

Trang 16


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

CHƯƠNG 4 : TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
4.1. Microsoft Visual Studio 2008
4.1.1. Giới thiệu Microsoft Visual Studio 2008
Microsoft Visual Studio 2008 là môi trường phát triển tích hợp chính (Integrated
Development Environment (IDE) được phát triển từ Microsoft. Đây là một loại phần
mềm máy tính có công dụng giúp đỡ các lập trình viên trong việc phát triển phần mềm.
Các môi trường phát triển hợp nhất thường bao gồm:
Một trình soạn thảo mã (source code editor): dùng để viết mã.Trình biên dịch
(compiler) và/hoặc trình thông dịch (interpreter).Công cụ xây dựng tự động: khi sử dụng
sẽ biên dịch (hoặc thông dịch) mã nguồn, thực hiện liên kết (linking), và có thể chạy
chương trình một cách tự động.
Trình gỡ lỗi (debugger): hỗ trợ dò tìm lỗi.Ngoài ra, còn có thể bao gồm hệ thống
quản lí phiên bản và các công cụ nhằm đơn giản hóa công việc xây dựng giao diện người
dùng đồ họa (GUI).
Nhiều môi trường phát triển hợp nhất hiện đại còn tích hợp trình duyệt lớp (class

browser), trình quản lí đối tượng (object inspector), lược đồ phân cấp lớp (class hierarchy
diagram), để sử dụng trong việc phát triển phần mềm theo hướng đối tượng.
Như vậy, Visual Studio 2008 được dùng để phát triển console (thiết bị đầu cuối –
bàn giao tiếp người máy) và GUI (giao diện người dùng đồ họa) cùng với các trình ứng
dụng như Windows Forms, các web sites, cũng như ứng dụng, dịch vụ wed (web
applications, and web services). Chúng được phát triển dựa trên một mã ngôn ngữ gốc
(native code ) cũng như mã được quản lý (managed code) cho các nền tảng được được hỗ
trợ Microsoft Windows, Windows Mobile, .NET Framework, .NET Compact Framework
và Microsoft Silverlight.Visual Studio hỗ trợ rất nhiều ngôn ngữ lập trình, có thể kể tên
như sau: C/C++ ( Visual C++), VB.NET (Visual Basic .NET), va C# (Visual C#)… cũng
như hỗ trợ các ngôn ngữ khác như F#, Python, và Ruby; ngoài ra còn hỗ trợ cả
XML/XSLT, HTML/XHTML, JavaScript và CSS
C# mang đến sức mạnh của C++ cùng với sự dễ dàng của ngôn ngữ Visual Basic.
4.1.2. Các chức năng cơ bản Microsoft Visual Studio 2008
Visual Studio 2008 có những chức năng cơ bản sau: soạn thảo mã (code editor),
trình gỡ lỗi (debugger) và thiết kế (Designer). Ở đây tôi chỉ trình bày một số công cụ
quan trọng của chức năng Designer – đây được xem là một trong những điểm nhấn của
Microsft Visual Studio.

Trang 17


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

 WinForms Designer: đây là công cụ tạo giao diện đồ họa dùng WinForms.
Điểm đặc biệt ở đây là giao diện với người dùng sinh động, dễ nắm bắt. Nó
bao gồm các phím bấm, thanh tác vụ, hay các box đa dạng (textbox, list box,
grid view…). Bạn có thể di chuyển, kéo ra, nhúng thả chúng một cách dễ

dàng.
 WPF Designer: WPF Designer còn có tên mã là Cider, được hỗ trợ trong
Visual Studio 2008. Nó tạo các mã XAML cho giao diện người sử dụng
(UI), mã này tích hợp với trình ứng dụng Microsoft Expression Design.
 Web designer: Visual Studio cũng hỗ trợ cộng cụ thiết kế trang web, trong
đó cho phép các công cụ thiết kế trang web được kéo, thả, rê, nhúng một
cách dễ dàng… Công cụ này dùng để phát triển trình ứng dụng ASP.NET và
hỗ trợ HTML, CSS and JavaScript.
 Class designer: Đây là công cụ dùng để thực thi và chỉnh sửa lớp. Nó có thể
dùng mã C# và VB.NET …
 Data designer: Đây là công cụ dùng để chỉnh sửa một cách sinh động, linh
hoạt các lược đồ dữ liệu, bao gồm nhiều loại lược đồ, liên kết trong và ngoài
 Mapping designer: Đây là công cụ tạo các mối liên hệ giữa sơ đồ dữ liệu và
các lớp để quản lý dữ liệu một cách hiệu quả hơn.
Ngoài ra còn có thể kể tên một số công cụ khác như:
 Open Tabs Browser: Nó được dùng để liệt kể các tab đã mở và chuyển đổi
giữa chúng. Bạn cũng có thể dùng phím nóng: CTRL + TAB.
 Properties Editor: Chức năng dùng để chỉnh sửa các chức năng của các cửa
sổ giao diện đồ họa người dùng (GUI) trong Visual Studio. Nó có thể áp
dụng cho các lớp, các mẫu định dạng hay trang web và các đối tượng khác.
 Object Browser: Đây là một thư viện tên miền và lớp trình duyệt cho
Microsoft.NET.
 Solution Explorer: theo ngôn ngữ của Visual Studio, solution là một bộ phận
của mã file và mã nguồn khác được dùng để xây dựng các trình ứng dụng.
Công cụ Solution Explorer được dùng để để quản lý và trình duyệt các file
trong solution.
 Team Explorer: Đây là công cụ dùng để hợp nhất các máy tính trong Team
Foundation Server, và RCS (revision control system - hệ thống điều khiển
xét duyệt) vào trong IDE


Trang 18


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

 Data Explorer: Data Explorer dùng để quản lý các dữ liệu trên các phiên bân
của Microsoft SQL Server. Nó cho phép tạo lập và chỉnh sửa các bảng dữ
liệu được tạo T-SQL commands hay dùng Data designer
 Server Explorer: Đây là công cụ dùng để quản lý dữ liệu trên máy tính được
kết nối.
4.2. Giới thiệu .NET framework & các thành phần chính
4.2.1. Giới thiệu .NET framework
.NET Framework của Microsoft là một nền tảng lập trình tập hợp các thư viện lập
trình có thể được cài thêm hoặc đã có sẵn trong các hệ điều hành Windows. Nó cung cấp
những giải pháp thiết yếu cho những yêu cầu thông thường của các chương trình điện
toán như lập trình giao diện người dùng, truy cập dữ liệu, kết nối cơ sở dữ liệu, ứng dụng
web, các giải thuật số học và giao tiếp mạng. Ngoài ra, .NET Framework quản lý việc
thực thi các chương trình được viết dựa trên .NET Framework do đó người dùng cần phải
cài .NET Framework để có thể chạy các chương trình được viết trên nền .NET.
• Về chức năng
NET Framework có 3 khối chức năng là: Trình diễn (Presentation); Dữ liệu (Data);
Giao tiếp (Communication).
• Về kỹ thuật
Hiện tại Microsoft giới thiệu 4 kỹ thuật mới và nổi bật nhất là: Windows CardSpace
(InfoCard), Windows Presentation Foundation (Avalon), Windows Communication
Foundation (Indigo), Windows Workflow Foundation (Workflow).
4.2.2. Các thành phần chính .Net framework
.NET Framework bao gồm ba phần là bộ thực thi ngôn ngữ chung (Common

Language Runtime) các lớp lập trình hợp nhất hay còn gọi là các thư viện lớp cơ sở (Base
Class Libraries) và một phiên bản cấu thành của Microsoft Active Server Pages gọi là
Microsoft ASP.NET. Trên thực tế ASP.NET và Windows Forms là hai thành phần nằm
trong Base Class Libraries, nên có thể xem .NET Framework bao gồm 2 phần chính là
Common Language Runtime (CLR) và .NET Framework Class Library (FCL). Một trong
các thành phần này đều có vai trò cực kỳ quan trọng trong việc phát triển các dịch vụ và
các ứng dụng .NET.

Trang 19


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

Hình 6 : Các thành phần chính của .Net Framework


Common Language Runtime (CLR)

Như các bạn đã biết, các ngôn ngữ lập trình khác nhau đều cung cấp một runtime (bộ
thực thi) và .NET Framework không phải là một ngoại lệ. Tuy vậy bạn sẽ thấy bộ
runtime này là khá đặc biệt so với phần lớn các runtime chúng ta vẫn sử dụng.
Common Language Runtime (gọi tắt là bộ thực thi – CRL) được xây dựng trên các
dịch vụ hệ điều hành. CLR là nền tảng của .NET Framework, nó đảm nhận các công việc
sau:


Là công cụ thực thi mã trung gian (tựa JVM)




Biên dịch (Just-in-time compiler)



Thực thi mã nguồn



Quản lý bộ nhớ



Thực thi luồng (Thread execution)



Xử lý lỗi (Error-handling)


Xác nhận mã nguồn an toàn và các hình thức khác của việc chính xác mã
nguồn (managed code).
CLR(Common Language Runtime) đã được phát triển ở tầm cao hơn so với các
runtime trước đây như VB-runtime chẳng hạn, bởi nó đạt được những khả nǎng như tích
hợp các ngôn ngữ, bảo mật truy cập mã, quản lý thời gian sống của đối tượng và hỗ trợ
gỡ lỗi.
Mã được biên dịch và hướng tới CLR có tên “managed code”. “Managed code” cung
cấp siêu dữ liệu (metadata) cần thiết cho CLR để cung cấp các dịch vụ hỗ trợ đa ngôn
Trang 20



Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

ngữ, bảo mật mã, quản lý thời gian sống của đối tượng và quản lý bộ nhớ.
Nếu .NET Framework tồn tại (và đã được cài đặt) trên một nền tảng, thì nền tảng đó có
thể chạy bất kỳ chương trình .NET nào. Khả năng của một chương trình có thể chạy
(không có sửa đổi) trên nhiều nền tảng được gọi là sự độc lập về nền tảng. Code được
viết một lần có thể được sử dụng trên mọi loại máy tính mà không sửa đổi, tiết kiệm cả
thời gian và tiền bạc.
.NET Framework cũng cung cấp mức độ tương tác cao giữa các ngôn ngữ. Chương
trình viết bằng các ngôn ngữ khác nhau đều được biên dịch thành các phần MSIL khác
nhau có thể được kết hợp để tạo ra một chương trình thống nhất. MSIL cho phép .NET
Framework trở thành ngôn ngữ không phụ thuộc, bởi vì các chương trình .NET không
gắn với một ngôn ngữ lập trình cụ thể nào cả. Bất cứ ngôn ngữ nào có thể được biên dịch
sang MSIL được gọi là ngôn ngữ tương thích với .NET. Danh sách các ngôn ngữ lập
trình khả dụng với .NET được liệt kê trong bảng sau:
 Các ngôn ngữ lập trình .NET
APL

Mondrian

C#

Oberon

COBOL


Oz

Component Pascal

Pascal

Curriculum

Perl

Eiffel

Python

Forth

RPZ

Fortran

Scheme

Haskell

Smalltalk

Java

Standard ML


Jscript

Visual Basic

Mercury

Visual C++

 Common Language Infrastructure (CLI)
Mục đích của Common Language Infrastructure (CLI) là cung cấp một nền tảng
ngôn ngữ trung lập để phát triển và thực thi ứng dụng, bao gồm cả chức năng để xử lý
các lỗi, thu gom rác thải (garbage collection), bảo mật và khả năng tương tác. Bằng cách
thực hiện những khía cạnh cốt lõi của .NET Framework trong phạm vi của mình, CLI sẽ
không được gắn với một ngôn ngữ duy nhất mà sẽ có mặt trên nhiều ngôn ngữ được hỗ
trợ bởi .NET framework.
 Biên dịch trong .NET
Common Language Runtime (CLR) là một phần trung tâm của .NET Frameworkit
thực hiện các chương trình .NET.
Chương trình được biên dịch vào các hướng dẫn-cụ thể (machine-specific) của máy
theo hai bước. Đầu tiên, chương trình được dịch thành Microsoft Intermediate Language
(MSIL), trong đó xác định các hướng dẫn cho các CLR. Code được chuyển đổi thành
Trang 21


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

MSIL từ các ngôn ngữ khác và các nguồn có thể được kết hợp với nhau bằng CLR. Các
MSIL cho các thành phần của một ứng dụng được đặt vào file thực thi của ứng dụng

(được gọi là assembly). Khi ứng dụng thực thi, trình biên dịch (được gọi là biên dịch justin-time hoặc biên dịch JIT) CLR phiên dịch MSIL trong file thực thi vào mã máy (đối với
một nền tảng cụ thể), sau đó mã máy được thực thi trên nền tảng đó. Ghi chú: MSIL là
ngôn ngữ trung gian, là một giải pháp để giúp cho các lập trình viên không cần quan tâm
đến việc lập trình bằng ngôn ngữ nào trong bộ .NET.
Ví dụ: thực tế, trong 1 nhóm lập trình, có người sử dụng VB.NET, có người dùng C#,
có người dùng J#,… nhưng họ vẫn có thể hợp tác làm ra sản phẩm, dùng ngôn ngữ quen
thuộc của họ để lập trình, không nhất thiết 1 group chỉ gồm những người lập trình duy
nhất 1 ngôn ngữ xác định.
Việc biên dịch chương trình sang MSIL giúp chương trình đó có thể chạy trên nhiều
máy, nhiều nền tảng khác nhau.
Tại sao phải biên dịch 2 lần:


Độc lập với phần cứng

.NET framewwork có thể cài đặt trên nhiều platform
Các chương trình .NET được thực hiện mà không có thay đổi code nào (viết 1 lần,
chạy mọi nơi)

Độc lập về ngôn ngữ
Các chương trình .NET không bị trói buộc vào một ngôn ngữ cụ thể nào cả
Các chương trình trong .NET có thể được viết bới các ngôn ngữ trong .NET


.NET Framework class library (fcl) – Thư viện lớp .NET Framework

Có thể bạn đã nghe qua về MFC và JFC. Microsoft Foundation Class (MFC) là bộ
thư viện mà lập trình viên Visual C++ sử dụng trong khi Java Foundation Class (JFC) là
bộ thư viện dành cho các lập trình viên Java. Bạn có thể xem .NET Framework Class
Library (FCL) là bộ thư viện dành cho các lập trình viên .NET.

Với hơn 80000 lớp đối tượng (với .NET 4.0) để gọi thực hiện đủ các loại dịch vụ từ
hệ điều hành, bạn có thể bắt đầu xây dựng ứng dụng bằng Notepad.exe. Nhiều người lầm
tưởng rằng các môi trường phát triển phần mềm như Visual Studio 98 hay Visual
Studio .NET là tất cả những gì cần để viết chương trình. Thực ra, chúng là những phần
mềm dùng làm vỏ bọc bên ngoài. Với chúng, bạn sẽ viết được các đoạn lệnh đủ các màu
xanh, đỏ; lỗi cú pháp báo ngay khi đang gõ lệnh; thuộc tính của các đối tượng được đặt
ngay cửa sổ properties, giao diện được thiết kế theo phong cách trực quan. Hầu hết các
lớp được gom vào một namespace (không gian tên) gọi là system.


Trang 22

Sơ lược về namespace


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

.NET Framework được tạo bởi từ hàng trǎm lớp (class). Nhiều ứng dụng mà bạn xây
dựng trong .NET đang tận dụng các lớp này theo cách này hay cách khác. Vì số lượng
các lớp là quá lớn, .NET Framework tổ chức các lớp này vào một cấu trúc lớp được gọi là
một namespace. Một namespace có thể là con của một namespace lớn hơn. Namespace
lớn nhất trong .NET Framework là System. System là một Namespace cơ sở trong .NET
Framework. Tất cả các namespace được cung cấp trong .NET framework bắt đầu với
namespace cơ sở này. Ví dụ, những lớp phục vụ việc truy cập và thao tác dữ liệu được
tìm thấy trong namespace System.Data.Những ví dụ khác bao gồm System.IO,
System.XML, System.XML, System.Collections, System.Drawing và v..v
Lợi điểm của namespace là phân nhóm các lớp đối tượng, giúp người dùng dễ nhận
biết và sử dụng. Ngoài ra, namespace tránh việc các lớp đối tượng có tên trùng với nhau

không sử dụng được .NET Framework cho phép bạn tạo ra các lớp đối tượng và các
namespace của riêng mình. Với hơn 80000 tên có sẵn, việc đặt trùng tên lớp của mình với
một lớp đối tượng đã có là điều khó tránh khỏi. Namespace cho phép việc này xảy ra
bằng cách sử dụng một tên đầy đủ để nói đến một lớp đối tượng. Ví dụ, nếu muốn dùng
lớp WebControls, bạn có thể dùng tên tắt của nó là WebControls hay tên đầy đủ là
System.Web.UI.WebControls.
4.3. Kết quả các chức năng của chương trình
4.3.1. Giao diện khi khởi động của chương trình

Hình 7 : Giao diện khởi động chương trình

Trang 23


Đề Tài : Truyền File Qua Mạng Lan

GVHD:Đặng Duy Thắng

4.3.2. Giao diện khi khởi động của server

Hình 8 : Giao diện khi khởi động server
4.3.3. Chọn File muốn truyền

Hình 9 : Chọn file muốn truyền

Trang 24


Đề Tài : Truyền File Qua Mạng Lan


GVHD:Đặng Duy Thắng

4.3.4. Giao diện khi Client chia File và gởi các packet đã chia đến Server

Hình 10 : Giao diện khi Client chia file và gửi các packet đã chia đến Server
4.3.5. Thông báo gởi các packet đến Server thành công và bắt đầu nối Packet

Hình 11 : Thông báo gửi các packet đến Server thành công và bắt đầu nối Packet

Trang 25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×