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

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

11 0 0

Đ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

Tiêu đề Lập trình socket
Tác giả Lê Sỹ Thuần, Trương Minh Nhật
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án thực hành
Năm xuất bản 2020-2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 11
Dung lượng 785,4 KB

Nội dung

Trang 1

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

KHOA CÔNG NGHỆ THÔNG TIN

- 

HÀNH

SOCKET

MÔN HỌC: MẠNG MÁY TÍNH

H c kỳ I (20 ọ 20-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

Trang 2

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.ạ ể ư ệ

Trang 3

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.ị ở

Phầồn này đã

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

Phầồn này đã

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

Trang 4

- Kh i t o 1 thread đ làm vi c v i socket trong 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.ỏ

Port 80

Kh i t o threadở ạ

Trang 5

- Đ 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

Đ để ượ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

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ệ ữ

Trang 6

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ăồng 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, quá trình nh n b lôẵi, đóng Used_ClientSocket và kêết thúc hàm.ợ ậ ị

Quá 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”.ở ậ

Trang 7

- M trình duy t web và truy c p vào “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.ậ ặ ậ ẩ ợ ệ ả ậ ạ

M t p tn Web_Server.exeở ậ

Truy c p “localhost”ậ

Trang 8

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ậ

không h p lợ ệ

Tên đăng nh pậ

và/ho c m t kh u saiặ ậ ẩ

Trang 9

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 ừ ủ

- 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

Trang 404 Not

Found xuầết hi nệ

Nhầến vào nút này để đêến trang t i t p tnả ậ

Thông tn c a 2 thànhủ

viên trong nhóm th cự

hi nệ

Trang 10

- 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

Các t p tn có thậ ể

t i vêồ, bầếm vào t pả ậ

tn muôến t i đ t iả ể ả

vêồ

Ch n v trí l u, đ tọ ị ư ặ

tên t p tn, nhầếnậ

“Save” đ l uể ư

Trang 11

IV Tài li u tham kh o ệ ả

Tài li u vêồ công ngh web cho l p trình viên:ệ ệ ậ

https://developer.mozilla.org/en-US/

CAsyncSocket class:

https://docs.microsoft.com/en-us/cpp/mfc/reference/casyncsocket-class?view=msvc-160#detach

Transfer-Encoding: chunked

https://en.wikipedia.org/wiki/Chunked_transfer_encoding

T p tn cầồn t i đãậ ả

đượ ưc l u thành

công

Ngày đăng: 12/03/2024, 16:34

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

TÀI LIỆU LIÊN QUAN

w