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

Đồ Án Thực Hành Đề Tài Lập Trình Socket.pdf

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 (785.4 KB, 11 trang )

lOMoARcPSD|38590726

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN

---------------  ---------------

ĐỒỒ ÁN THỰC
HÀNH TRÌNH

ĐỀỀ TÀI: LẬP
SOCKET

MÔN HỌC: MẠNG MÁY TÍNH
Học kỳ I (2020-2021)

LỚP: 19CTT2

SV Thực hiện 1: LÊ SỸỸ THUẦỒN

MSSV: 19120387

SV Thực hiện 2: TRƯƠNG MINH NHẬT

MSSV: 19120318

TP. HỒ CHÍ MINH, THÁNG 12 NĂM 2020

MỤC LỤC



I. Ý tưởng.........................................................................................................................................2
II. Các bước cài đặt ứng dụng này.........................................................................................2
III.
Chạy thử ứng dụng...............................................................................................................6

Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

IV. Tài liệu tham khảo...............................................................................................................11

I. Ý tưởng

Tạo một ứng dụng web cho phép người dùng đăng nhập để xem được thông tn của người tạo nên trang
web (2 thành viên trong nhóm thực hiện đơồ án) và cho phép người dùng tải các tập tn từ máy chủ của
trang web vêồ máy.

II. Các bước cài đặt ứng dụng này

Sử dụng gói MFC để tạo template code.

Các fle .cpp và .h được tạo sănẵ , chỉ cầnồ viêết hàm main() vào fle .cpp được yêu cầồu (ở đầy là
Web_Server.cpp), tạo thêm fle Web_Server.h để khai báo các hàm, các thư viện cầồn thiêết.

Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

Phầồn này đã

được viêết sănẵ

Phầnồ này đã
được viêết săẵn

Cài đặt hàm main
- Tạo 2 class CSocket là client và server, CSocket server khởi tạo băồng hàm Create với port của giao
thức HTTP là port 80 được định nghĩa băồng DEFAULT_PORT ở Web_Server.h.

Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

Port 80

- Khởi tạo 1 thread để làm việc với socket trong thread đó

Khởi tạo thread

- Sử dụng vịng lặp vơ tận để CSocket server luôn lăếng nghe và chầếp nhận tn hiệu từ CSocket
client băồng hàm Listen và Accept với sôế kêết nôếi tôếi đa là MAXCONN được định nghĩa trong
Web_Server.h.

- Khởi tạo một con trỏ client_socket kiểu SOCKET*, tách SOCKET từ CSocket client và gán vào con
trỏ client_socket băồng hàm Detach.

Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726


- Đưa con trỏ client_socket này vào hàm Receive_Send_Thread trong thread để thực hiện việc
nhận dữ liệu từ socket và gửi dữ liệu tới socket độc lập với chương trình chính.

- Vịng lặp têếp tục lặp lại vơ tận để nhận CSocket server lăếng nghe và chầếp nhận kêết nôếi từ
CSocket client.

Vịng lặp vơ tận cho việc lăếng
nghe, chầếp nhận và gửi nhận tn

hiệu giữa các CSocket

Để được đưa vào hàm Receive_Send_Thread con trỏ client_socket phải ép thành kiểu LPVOID, vào bên
trong hàm Receive_Send_Thread, ép kiểu con trỏ client_socket vêồ lại kiểu SOCKET* rơồi gán giá trị của nó
cho CSocket Used_ClientSocket.

Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

Sử dụng hàm Receive để nhận dữ liệu từ Used_ClientSocket và lưu vào mảng kí tự receive_bufer với độ
dài DEFAULT_BUFFER_LENGTH, hàm Receive trả vêồ sôế byte dữ liệu nhận được cho biêến receive_result.
Nêếu sôế byte nhận được lớn hơn 0, nhận dữ liệu thành công và têến hành phản hôồi; nêuế sơế byte nhận
được bănồ g 0, phía client ngừng gửi dữ liệu, đóng Used_ClientSocket và kêết thúc hàm; nêuế sôế byte nhận
được khác hai trường hợp trên, q trình nhận bị lơẵi, đóng Used_ClientSocket và kêết thúc hàm.
Q trình phản hơồi:

- Xử lí nội dung request từ client chứa bên trong receive_bufer băồng hàm processRequest để biêết
được các thông tn quan trọng như Request method (phương thức request), tài nguyên mà
client yêu cầuồ (trong phương thức GET), những dữ liệu mà client gửi tới (thông qua phương thức
POST) và chuẩn bị các thông tn cầnồ thiêtế để tạo một response như Status-Code (mã phản hôồi),

tên fle tài nguyên mà client yêu cầuồ , loại tài nguyên mà client yêu cầồu,…

- Tạo response băồng hàm createResponse, response gôồm 3 phầồn:
+ Status-Line chứa các thông tn như HTTP version (phiên bản HTTP), Status-Code, Reason-
Pharse (mô tả vêồ mã phản hôồi)
+ Header chứa các thông tn vêồ Connecton, Content-Type, Content-Dispositon, Transfer-
Encoding, Locaton, Conten-Length,...và một dịng trơếng để kêết thúc phầồn Header.
+ Phầồn Body chứa nội dung cầnồ gửi vêồ cho client thông qua response.

- Sử dụng hàm Send để gửi response đi từ Used_ClientSocket, hàm Send trả vêồ sôế byte gửi được
cho biêến send_result, nêuế send_result nhỏ hơn hoặc băồng 0, việc gửi response thầết bại, ngược
lại, gửi response thành công.

III. Chạy thử ứng dụng

- Mở tập tn “Web_Server.exe”.

Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

Mở tập tn Web_Server.exe
- Mở trình duyệt web và truy cập vào “localhost”.

Truy cập “localhost”

- Tại trang đăng nhập, nhập tên đăng nhập vào mục Username và mật khẩu vào mục Password
(mặc định là admin/admin).
Nêếu tên đăng nhập và/hoặc mật khẩu không hợp lệ, seẵ phải nhập lại.


Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

Tên đăng nhập
không hợp lệ

Nêếu tên đăng nhập và/hoặc mật khẩu sai, trang 404 Not Found xuầết hiện.
Tên đăng nhập
và/hoặc mật khẩu sai

Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

Trang 404 Not
Found xuầết hiện

Nêếu tên đăng nhập và mật khẩu đúng, trang thơng tn vêồ 2 thành viên trong nhóm thực
hiện đơồ án hiện ra, tại đầy có nút “DOWNLOAD FILES”, bầếm vào nút này để đênế trang tải tập tn
từ máy chủ.

Thông tn của 2 thành Nhầến vào nút này để
viên trong nhóm thực đêến trang tải tập tn

hiện

- Trang tải tập tn hiện ra với tên các tập tn có thể tải vêồ, kích thước tập tn và các thơng tn liên
quan.


Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

Các tập tn có thể
tải vêồ, bầếm vào tập
tn muôến tải để tải

vêồ

- Bầếm vào tên tập tn muôến tải, hộp thoại “Save as” xuầtế hiện và tên của tập tn tải vêồ được tự
động điêồn vào giôếng như tên tập tn ở trên trang tải tập tn, bầếm vào nút “Save” để tải tập tn vêồ
máy.

Chọn vị trí lưu, đặt
tên tập tn, nhầến

“Save” để lưu

Downloaded by BINH NGUYEN ()

lOMoARcPSD|38590726

Tập tn cầnồ tải đã
được lưu thành

công

IV. Tài liệu tham khảo


Tài liệu vêồ cơng nghệ web cho lập trình viên:
/> CAsyncSocket class:
/> Transfer-Encoding: chunked
/>
Downloaded by BINH NGUYEN ()


×