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

Xây dựng phần mềm cho phép người dùng gửi thông điệp và chát với dịch thuật bằng các câu có sẵn

77 4 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 đề Xây dựng phần mềm cho phép người dùng gửi thông điệp và chát với dịch thuật bằng các câu có sẵn
Tác giả Nguyễn Huy Ngo Tài Liên
Người hướng dẫn Th.S Vĩ Thanh Hiền
Trường học Trường Đại học Ngoại ngữ - Tin học TP.HCM
Chuyên ngành Khoa Công Nghệ Thông Tin
Thể loại Đề tài tốt nghiệp
Năm xuất bản 2005
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 77
Dung lượng 36,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Xay d\ffig chuang trinh trng d\lng : Tim hiSu vS giao thuc m~ng va su d\lng ngon ngii C# dS xay dgng chuang trinh cho phep nguai dung gui thong di~p vachat v6'i dich thu?t b~ng nhfrng

Trang 1

.i

BO GIA.O DUC vA DAo TAO TRUONG DHDL NGOAI NGU-TIN HOC TP.HCM

KHOA CONG NGH~ THONG TIN

" "

Xay d\fng ph an mem cho phep ngum dung gUi thong di~p va

-chat VOl djch thu,t bang cac cau co san

GIANG VIEN HUONG DAN: Th.S Vfi Thanh Hi~n SINH VIEN THlfC HI~N: Nguy~n Huy

Ngo Tii Lien

TP.HO CHi MINH - 2005

Trang 2

1.1.1 SO' IU'qc ve Net •••.• • ••.•.•.• • •.• • •.• 4

1.1.3 Di~m m~nh cua Net • 4

1.2 Cac thanh ph~n chinh clla Net Framework 51.2.1 Moi trU'rrng Common language Runtime (CLR) 51.2.2 Net Base Classes Library (BCL ) 6

1 32• • f)"(}CI"~p VOl DeD va'" A 'b"(} Xlf., I'y • • • • •.•.••.••.••.• • •.•.• •••.• •.61.3.3 QUaD Iy bQ nh& t• •.dQng ••••.• •.•••••••.•.••.•••••.••••• ••.•.• •• •.• 6

1.3.4 HB trg phien baD •••••••••••••••••••••••••••••••••••••.••••••••••••••••••.•• ••.•.•••6

1.3.6 Tri~n khai d~ dang•.••••.•••.••.••.• •.••.• •.• • • • •.6

1.3.8 Thao tac gifra cac ph~n vOi rna khong quan If 71.3.9

2 1• G '" th""101 ? I~UveA ngoD ngw " - C# ••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••8

217 . K""tern soa ngo~t ~'t I" .9

2 2. CAt'au rue err b."."an eua ngoo ngO'" - C# .11

Trang 3

Sub n et Mas k 31

Nhu'ng ti~n ich khi dung thread 33

Cae kh6 khan khi d iJog thread : 34

Giao ThucDia Chi IP

2.3 ADO.NET va L~p trinh CoosO'du'li~u 14

2.4.2 ThO'vi~n cac ham socket trong C# 17Ph~n 2: Xay d,!ng chO'O'ngtrinh ung dl}ng 21ChO'O'ng1: Tim hi~u ky thu~t l~p trinh Socket: 211.1 Cac Khai Ni~m Co' Ban v~H~ Th8ng M~ng 211.1.1

2.2.2 Co' ch~ ho~t dQng phia trinh

3.1.1 D8i v6'i ngO'01.quan tri Admin 40

3.2.1 Tinh d~ mo' rQngva d~ bao tri 44

Trang 4

ky 55nh~P •.• ••• ••.••.• •• •• • • 54Tinh tieo 101, tlnb d~ su d uog. 44

I

3.2.2

3.2.3 Tin h bao mit •• 44

4.1.1 ciu true dfr lieu dich thuat :. 454.1.2 Dfr li~u luu trfr thong tin User 50

4.3.1 User Dang

4.3.4 Admin Dang4.3.5 Admin Them can dich thuat . 564.3.6 Admin Xoa quy~n dang nhip ella User 564.4 Thi~t k~va xu Iy cae giao di~n ehinh ella ehuO'ng trinh 574.4.1 Form Dang nhip ehuO'ng trinh 57

4.4.5 Form T~o Room mai • •.• 61

4.4.9 Form Dang nhip h~ th8ng ella Admin 64

Trang 5

Trang 1

Chung em xin chan thanh cam an cac th~y co khoa Cong Ngh~ Thong Tin dat~n tinh giang d~y, mang d@ncho chung em nhung ki@nthuc b6 ich Do langu6n tri thuc quy bau va la nSn tang vfrng chAc cho tuang lai chung em

Chung em chan thanh cam an th~y Vii Thanh HiSn da nhi~t tinh huang dftn,chi bao chung em trong su6t thai gian th\fc hi~n dS tai nay

Ben c~nh do chung em xin cam an vS cong an du6ng d\lc Clla cha my va S\fgiup dO'tu b~n be dS co duQ'cngay hom nay

M~c du da c6 gAng th\fc hi~n vai tfit ca S\f n6 l\fC Clla bfm than, nhung k@tquath\fC hi~n clla dS tai se khong tranh kh6i nhung thi@usot, kfnh mong S\l'thongcam clla quy th~y co

Chung em xin chan thanh cam an.

Sinh vien th\fc hi~nNgo Tu Lien MSSV 0111592NguySn Huy MSSV 0111494

Trang 6

-Trang 2

" "

Phan M«Dau

1 Tinh c~P thi~t Clla d~ tai

Hi~n nay, Khoa hQc Ky thu~t va Cong ngh~ Thong tin phat triSnnhay vQt, ben c,;mh cac dich V\l thong thuemg rna chung ta v~n su d\lnghang ngay tren Internet OOutruy c~p trang web, Email Chung ta co thS

su d\lng mQt dich Y\l khac mia do la HQi tho(;1i-Chatting Chat la trochuy~n, trao d6i thong tin vai nhau tren m(;1ngInternet Co nhiSu chuang

triOO h6 trq cho phep chung ta chat tn.rc tiSp (OOung nguai chat dang

Online) ho~c gian tiSp (OOling nguai chat dang Offline) vai d6i phuang(b(;1nchat) Chung ta co thS chat bAng chu (text), chat bAng am thanh(voice) ho~c bAng hiOOaOO(web-cam)

Tuy nhien hi~n nay, theo OOu hiSu biSt cua chung em, cac chuang

triOO chat v~n chua h6 trq vi~c dich thu~t, nen vi~c dua dich thu~t cac

ngon ngu vao ling d\lng co thS t(;10Co' hQi cho mQi nguai tuy khong clingngon ngu nhung v~n co thS dS dang trao d6i, lien l(;1cvai nhau

Va dS th\fc hi~n thaOO cong y tUOng tren, chung em da chQn ngonngu C# dS xay dvng trng d\lng nay

2. Y nghia khoa hQCva thl}'Cti~n

2.1 Y nghia khoa hQc :

Ngay nay, S\f giao tiSp giua con nguai va may tinh ngay cangcao Vi~c da hoa ngon ngu da duqc nhiSu nha cung trng ph~n mSmdua vao su d\lng Nhu hang Microsoft da cho ra dai ph~n mSmMicrosoft Vi~t hoa song song vai nhling phi en ban viSt bAng tiSng

Anh Tu do cho ta th~y mQt buac OOaymai trong vi~c tich hqp da

ngon ngu vao mQt s6 ph~n mSm ling d\lng

2.2 Y nghia thl}'cti~n :

Trong thai d(;1ingay nay, Internet da xam nh~p h~u OOut~t camQi 1100 vvc tu vi~c trao d6i thong tin, hQc t~p, buon ban dSn vi~c dichq qua m(;1ng.Trong do chat la phuang ti~n giao tiSp duqc nhiSunguai biSt dSn Nhung hi~n nay cac chuang triOOchat v~n con thiSuh6 trq ngon ngu khi chat NSu mu6n kSt b(;1nvai mQt nguai a mQt

qu6c gia khac rna v6n tiSng nuac ngoai khong co thi r~t kho khan.

Nhung nSu ta dua vi~c dich thu~t vao chuang triOO chat thi mQinguai dli b~t cli dau dSu co thS trao d6i vai nhau rna khong c~n biStnhiSu ngon ngu

Trang 7

Trang 3

3 Ml}c dich nghien cuu

3.1 Muc dich tAng quat:

• Tim hiSu ngon ngfr C# :

Trong phdn nay bao cao gi6'i thi~u sa lugc vS d~c diSm,

tinh nang uu khuySt cua moi truOng Net Framework.Trinhbay vS cac d~c trung cua ngon ngfr C#

• Xay d\ffig chuang trinh trng d\lng :

Tim hiSu vS giao thuc m~ng va su d\lng ngon ngii C# dS xay

dgng chuang trinh cho phep nguai dung gui thong di~p vachat v6'i dich thu?t b~ng nhfrng cau co s~n dga tren hai ngon

ngii TiSng Vi~t va TiSng Anh.

3.2 Muc tieu cu th~

• Tim hiS~ ra vS ngon ngfr C# tren moi truOng Net

• Xay dgng dugc chuang trinh trng d\lng giup nguai dung cothS chat public va chat private

Ben c~nh do chuang trinh con dich thu?t theo hai ngon ngii

Vi~t va Anh trong khi chat

4 D8i tU'Q'ngva ph~m vi nghien cuu

4.1 D8i tU'Q'ngnghien cuu

• Nhfrng 19i ich rna NET dem l~i

• Ngon ngfr C#

• Cac ham Socket, Thread, Stream,

• ADO.NET,

• Ca chS Chat client/server

Cach luu trii dii li~u tren file.

• C~u truc bang bam va t?P tin chi m\lc

4.2 Ph~m vi nghien cuu

• Chuang trinh chat co thS trng d\lng tren m~ng C\lCbQ

Chuang trinh chi h6 trg dich thu?t 2 ngon ngii Vi~t va Anh.

• Cau dich thu~t chu ySu dga tren nhfrng cau co s~n

Trang 8

Ph~n 1 - Chuang 1 : Sa lugc vS NET Frameworks

.Net da cung cfip giai phap lam cho du li~u va Ung dVng co th@dugctruy c~p bai bfit ky thiSt bi nao tren internet Ngoai ra Net con cho phepchung ta xay dvng cac chuang trinh quan ly du li~u tren Internet thongqua nh~n d<;tngchu viSt, gi<;mgnoi va cac ky thu~t hinh anh

Phien ban d~u tien cua Net ch<;tytren h~ diSu hanh Windows.Tuang lai se lam vi~c tren cac moi twang khac nhau nhu Linux,Macintosh, PDA,

1.1.2 Nhu'ng IQi ich clla _Net

.Net cung cfip moi twang tich hgp lam cho vi~c l~p trinh dan gie:mhan Chu trinh phat tri@n ng~n han nh6 vi~c tai su dVng rna, chung tacung co th@tuang tac va su dVng l<;tinhung ung dVng dugc t<;tob~ng Net Net su dVng XML cho vi~c giao tiSp giua nhung may tinh khacnhau tren nhung nSn tang khac nhau

1.1.3 Di~m manh clla Net

Dan gian -hoa vi~c phcit tri@n cac ung dVng clien/server Cac congngh~ phan tan hi~n nay doi hoi m6i lien h~ cao va thiSu SV'cQng tac v6'imoi truang Web V6'i Net ta dugc cung cfip mQt kiSn truc tu xa, khaithac cac chu~n Internet rna, nhu giao thuc HTTP, ngon ngu danh dfiurna

rQng va giao thuc xu ly d6i tugng dan gian (SOAP)

H6 trg cac thanh ph~n COM

.Net dugc thiSt kS sao cho no co th@dugc su dVng tu bfit ky ngonngu nao Bao g6m : C#, Visual Basic, C++, Jscript va ngay ca cac ngonngu cu nhu COBOL , khong chi chung truy c~p t6'i Net Framework,chung co th@lien l<;tcv6'i nhau

Trang 9

Phfin 1 - Chuong 1 : Sa lugc vS NET Frameworks

1.1.4 N~n bing eua Net

NSn tang clla Net g6m 5 thanh phfin chinh :

Trang 5

.NET Enterprise Servers

.NET Framework

.NET Building Block Services

2000, dS lam don gian va thu ng~n thai gian cfin thiSt dS phattriSn va quan ly h~ th6ng

• MQt s6 dich V\ldugc xay d\l1lg thanh kh6i

• 6 tfing cao nhfrt Clla kiSn truc NET la cong C\l phat triSn m6inhfrt co ten gQi la Visual Studio NET, h6 trg cho chung ta phattriSn nhanh cac lmg d\lng Visual Studio NET h6 trg b6n ngonngu l~p trinh (C#, VB.Net, C++, J#) va mQt s6 chuc nang nhu :bien dich ,gO' r6i,

• Cu6i cung la moi truang Command Language Runtime

1.2 Cae thanh phAn ehinh ella Net Framework

1.2.1 Moi trU"(yngCommon language Runtime (CLR)

Thanh phfin quan trQng nhfrt clla Net Framework la CommonLanguage Runtime Tuang t\1 nhu may ao clla Java "Java VirtualMachine", CLR la moi truang quan ly S\1th\1c thi g6m quan ly vi~c cfrpphat bQ nh6, bfiy 16i, va tuong tac v6i cac service cua h~ diSu hanh

CLR su d\lng trinh bien dich Just In Time (JIT) dS chuySn rnaIntermedia Language (IL) thanh rna native

Trang 10

Ph~n 1 - Chuong 1 : Sa luQ'cvS NET Frameworks Trang 6

1.2.2 Net Base Classes Library (BCL)

MQt t~p hQ'P rQng IOn cua cac thanh ph~n l~p trinh nhu lap, giaodi~n, cac kiSu gia tri va cac giao di~n l~p trinh tmg d\lng ApplicationProgramming Interface (API)

1.3 Cac dac tioh clla Net

1.3.1 Tri~n khai da ngon ngii'

Cho phep cac ngon ngfr duQ'c tich hQ'Pv6i mQt ngon ngfr khac thongqua vi~c su d\lng Microsoft Intermedia Language (MSIL)

Garbage Collection thinh thoang kiSm tra bQ nh6 may tinh, va xoab~t cu cai gi rna no khong con c~n dSn nfra

1.3.4 98 trg phien ban

KiSn truc Net phan cac thanh ph~n tmg d\lng sao cho mQt ung d\lngluon luon n?p cac thanh ph~n rna no duQ'c xay dvng va kiSm tra

1.3.5 98 tnr cac chu~n rnG'

Cac kiS~ truc cua Net dva tren XML, SOAP

Cac chuAn khac UDDI (Universal Description, Discovery, andIntegration), thu m\lc va XML cua cac cong ty, WSDL (Web ServicesDescription Language)

1.3.6 Tri~n khai d~ dang

Cac thanh ph~n Net khong tham chiSu trong Registry do su d\lngmetadata va sv phan chiSu , cac thanh ph~n tv mo ta

1.3.7 Ki~n truc phan tan

DuQ'c thiSt kS dS h6 trQ'cac tmg d\lng phan tan

Cac thanh ph~n duQ'c t?O co thS cu tru ben trong cac process khactren cung mQt may ho~c tren may khac qua m?ng

Trang 11

Ph~n 1 - Chuang 1 : Sa luqc v@.NET Frameworks Trang 7

1.3.8 Thao tac gifra cac phdn vOi rna khong quan If

Ma khong quim ly la rna khong duqc quan ly boi CLR

Ma nay v~n ch~y boi CLR, no khong duqc cac lqi thS nhu rna quan

ly co, ch~ng h~n nhu : Cornman Type System (CTS) , quan ly bQ nha tvdQng,

Bao g6m:

• Ma quim ly g9i cac ham DLL khong quan ly

• Ma quan ly su d\lng cac thanh ph~n COM

• Ma quim ly dung cac service Net tiTcac thanh ph~n COM

Trang 12

Ph~n 1 - Chuong 2 : Ngon ngu C#

kS tu ba ngon ngu C++, Java, Visual Basic

C# dugc coi nhu la ngon ngu duy nh~t thiSt kS tu nSn len cho NetFramework va co thS la ngon ngu chinh su dVng trong cac phien b~mclla.Net rna dugc chuySn tai cac h~ diSu hanh khac

2.1.2 Cae ung d\lng

Co 3 d?ng Ung dVng :

• Window Application: su dVng Windows Form clla Net Framework

va cac control (button, menu, panel, listbox, richtextbox, ) dS xaydVng giao di~n nguai dung User Interface (UI) Clla Windows

• Web Application: La cac trang web co thS xem thong qua b~t ky trinhduy~t web nao Net Framework bao g6m mQt h~ th6ng m?ng dS phcitsinh nQi dung web dQng gQi la Active Server Pages.Net (ASP.Net)

• Web services : DiSu nay mai va kich thich cach t?O cac Ung dVngphan ph6i mQt cach linh ho?t Su dVng cac web service, chung ta cothS thay d6i g~n nhu b~t ky du li~u nao tren Internet, su dVng cung cuphap don giim b~t ch~p ngon ngu su dVng dS t?O mQt web service,ho~c h~ th6ng rna no cu tm

2.1.3 Khong gian ten

Khai ni~m khong gian ten namespace cling tuong tv nhu khai ni~mpakage clla Java, co nghia la khai bao dinh danh cung vai cac thong tintrong lap Cllano vao trong project clla C#

Vi~c khai bao khong gian ten la duy nh~t

2.1.4 Giao ti~p nh~p / xu~t

DS kSt xu~t ra man hinh chung ta dung khong gian ten System valap Console

Cac phuong thuc dQc du li~u tu man hinh :

• Read 0 :DQc ky tv kS tiSp tu dong nh~p chuftn

• ReadLine 0 :DQc dong kS tiSp tu dong nh~p chuftn

Trang 13

Ph~n 1- Chuang 2 : Ngon ngfr C#

Cac phuong thuc xu~t dfr li~u ra man hinh :

• Write 0 :Xu~t chu6i ra man hinh

• WriteLine 0 :Xu~t chu6i ra man hinh, co

Trang 9

,xuong dong

2.1.5 Ki~u dfr li~u trong C#

Co 3 lo~i kiSu dfr li~u

KiSu gia tri : duQ'c c~p phat tren vung nha stack, g6m cac kiSu co

s~n (int, bool, string, ), kiSu li~t ke (enum) va kiSu c~u truc(struct)

KiSu tham chiSu : duQ'c c~p phat tren vung nha heap, g6m lap

(class), giao di~n( interface) va delegate

• KiSu con tro : chi Slrd\Jng trong cac do~n rna "khong an toan"

2.1.6 Quy uO'c d~t ten

Vi~c d~t ten bao g6m ten lap, ten phuang thuc, thuQc tinh, va mQts6 S\1'ki~n, biSn va d6i tUQ'llgtrong do :

• Ky t\1'd~u tien phcii la chfr, d~u g~ch, ho~c d~u @

• Cac ky t\1'tiSp theo phcii la chfr , d~u g~ch duai ho~c s6

Ngon ngfr C# co phan bi~t chfr hoa va chfr thuemg

D6i vai khai bao biSn chung ta dung tu d~u tien d~i di~n cho kiSu dfrli~u, kS dSn la ten cua biSn

2.1.7 Ki~m 80at ngo~i I~

KiSm soat ngo~i l~ la cho phep ngmJi l?p trinh kiSm soat cac 16iphat sinh trong qua trinh th\1'cthi chuang trinh dS khong bi dung chuangtrinh trong luc ch~y

Co 3 phat biSu kiSm soat ngo~i l~ :

• Don b~t ngo~i l~ vai phat biSu try - catch

• Xoa ngo~i l~ vai phat biSu try - finally

• KiSm soat ngo~i l~ vai try-catch-finally

Trang 14

Ph~n 1 - Chuang 2 : Ngon ngfr C# Trang 10

2.1.8 Nem ngo~i l~

Khi don b~t ngo~i l~, phai chi thj nem chung b~ng phat biSu sau:

• Throw new ArgumentExceptionO;

Bang ngo~i l~ chuAn :

Exception Lap co sa cho tiit ca cac doi tUQ11g

ngo~i l~

SystemException Lap co sa cho tM ca cac 16i t~o ra

trong qua trinh th\fc thi

IndexOutOfRangeException Phcit sinh 16i trong qua trinh th\fc

thi khi mang danh m\lc vuqt quagi6i h~n

NullReferenceException L6i phcit sinh khi mQt doi tUQ'ng

r6ng duQ'c tham chiSu

InvalidOperationException L6i do khi g9i den phuang thuc

cua tr~ng thai hi~n t~i cua d6itUQ11g

ArgumentException Lap co sa cho tat ca cac tham so

ngo~i l~

ArgumentNullException ~go~i l~ cho truOng hQ'ptham so la

rong

ArgumentOutOfRangeException Ngo~i l~ cho truOng hQ'P tham s6

khong thuQc vung dfr li~u chophep

InteropException Lap co sa cho ngo~i l~ khi th\fc thi

trong moi truOng n~m ngoai thaigian th\fc thi NET

Bang 2.1

Trang 15

Ph~n 1 - Chuong 2 : Ngon ngfr C# Trang 11

2.2 CiD truc cooban clla ngon ngfr C#

2.2.1 Binh nghia L6'p

MQt lOp la mQt c~u truc dfr li~u chua cac thanh vien dfr li~u (cach&ng, cac truemg dfr li~u), cac ham thanh vien( cac phuong thuc, cacthuQc tinh, cac indexer, cac s\1' ki~n, cac toan tu, cac constructor,destructor) va cac kiSu 16ng nhau

[modifiers] class identifier [: base-list]

{

// class body}

Trong do:

• modifiers: new, abstract, sealed va 4 modifier truy c~p (public,protected, internal, private)

• identifier: ten lOp

• base-list: danh sach chua mQt lOp cO'sa va b~t ky giao di~n thvcthi nao, duQ'c cach nhau bai d~u ph~y

"

d"fi t

onmo I ler ruy c~p

nang truy c~p

Public Truy c~p khong giai h:;m

Protected Truy c~p co giai h~n alOp, dfin xuat tit lap.

Internal Truy c~p co giai h~n aproject hi~n t~i

Private Truy c~p co giai h~n akieu chua

Static constructor : GQi t\1'dQng dS khai dQng lap truac khi thvc

thS d~u tien duQ'c t~o ho~c b~t ky thanh vien tinh nao duQ'c thamchieu Constructor lo~i nay khong co tham s6 va khong comodifier truy c~p

Trang 16

Phfin 1 - Chuong 2 : Ngon ngu C# Trang 12

2.2.3 Destructor

La mQt thanh vien duQ'c dung dS huy mQt th\fc thS cua lap

Destructor co cung ten vai ten lap phia truac co d~u ~, destructor

khong co tham s6 va khong co modifier truy c~p

Do~n rna trong destructor se duQ'c gQi khi garbage collection xay ra,cho phep chung ta giai phong tai nguyen

2.2.4 Binh nghia giao di~n ,

MQt giao di~n dinh nghla la mQt hqp dong

MQt lap ho~c struct th\fc thi mQt giao di~n phai tham gia vao hqpd6ng cua no

MQt giao di~n co thS kS thll'a tll' nhiSu giao di~n co So', lap ho~cstruct th\fc thi nhiSu giao di~n

Cac giao di~n co thS chua cac phuong thuc, cac thuQc tinh, cac S\fki~n va cac indexer

[modifiers] interface identifier [: base-list]

{

// interface body}

Trong do:

• modifiers: cho phep cac modifier la new va 4 modifier truy c~p(public, protected, internal, private)

• identifier: ten giao di~n

• base-list: danh sach chua mQt hay nhiSu giao di~n cach nhaubai d~u phfty

2.2.5 Binh nghia Delegate

La mQt kiSu cho phep chung ta luu tru cac tham chiSu t6i cac ham

No duQ'c khai bao gi6ng nhu khai bao ham nhung khong co than ham va

[modifiers] delegate result-type identifier

([formal-parameters ]);

Trang 17

Phfin 1 - Chuong 2 : Ngon ngfr C# Trang 13

2.2.6 ThuQc tinh Get va Set

Hai phuong thuc Get va Set trong C# duQ'c gQi la thuQc tinh, thuQctinh Get la mQt phat biSu tni vS gia tri, thuQc tinh Set la mQt phat biSugan gia trio

Cac S\f ki~n trong C# cai d~t vai cac delegate MQt phuong thuc xu

ly illQt S\f ki~n duQ'c gQi la mQt bQ xu ly S\f ki~n (event handler) tra vSvoid va co hai tham s6 :

• Tham s6 dfiu tien la ngu6n S\fki~n (d6i tUQ'llggay ra S\fki~n), do

la d6i tUQ'llgpublish(gQi la publisher)

• Tham s6 thu hai la mQt d6i tUQ'llgchua thong tin vS S\f ki~n, d6itUQ'llgnay phai d~n xu~t tir lap EventArgs EventArgs la lap Co'

So' cho mQi dfr li~u S\fki~n

[modifiers] event type declarator

[modifiers] event type member-name

{

II accessor-declarations

}

Trong do

• ~: la delegate rna chung ta lien kSt S\fki~n nay

• declarator, member-name: ten cua S\fki~n

• accessor-declarations: khai bao cac accessor su d\mg dS them vahuy cac bQ xu ly S\fki~n (option)

Trang 18

Phfrn 1 - Chuang 2 : Ngon ngfr C# Trang 14

2.3 ADO.NET va L~p trioh Coo sir dfr li~u

2.3.1 GiOi thieu v~ ADO.NET.

ADO.Net la mQt lap trong Visual Studio.Net, chung chia ra lam hailo?i : lap k@tn6i (Connected Layer) va lap khong k@tn6i (DisConnectedLayer) V6i hai lap nay b?n co thS k@tn6i va thao tac tren cac lo?i co So'

d~ li~u nhu SQL Server, MySQL, Ms Access, Oracle, co So' dfr li~u phancap

ADO.Net duqc thi@tk@ nhu mQt cong ngh~ truy xuftt dfr li~u khongk@tn6i va phan ph6i d\Ia tren chu~n XML

ADO.Net duqc dinh nghTa trong khong gian ten: System.Data

co b6n lap :

• Connection: Lap k@tn6i co So' dfr li~u

• DataAdapter: Lap chua dfr li~u

• Command: Lap chua l~nh

• DataReader: Lap dQc dfr li~u

2.3.3 L6'p k~t nBi Connection

Thi@tlap va rnak@tn6i :

IISu dVng khong gian ten SQL Server.NET

using System.Data SqIClient;

IIT?o d6i tuqng k@tn6i

SqlConnection conn = new SqlConnection connO;

IIThi@t l~p thuQc tinh chu6i k@tn6i

conn.ConnectionString = "Server=127.127.127.127''' +

"Initial Catalog=temp'''+''User, Id = sa' Password = sa'''', , ,

liMa k@tn6i conn.OpenO;

IIDong k@tn6i conn.CloseO;

Trong do:

• Server: ten server co cai d~t SQL Server

• Initial Catalog: ten co sa dfr li~u

• User Id : tai khoan dang nh~p co sa dfr li~u SQL Server

• Password: m~trna dang nh~p co sa dfr li~u SQL Server

Trang 19

Ph~n 1 - Chuang 2 : Ngon ngu C# Trang 15

2.3.4 L6'p chua I~nh Command

D6i tuqng Command duQ'c su dVng khi mu6n thlJc thi mQt diu truyvc1ndu li~u

ThiSt lap va rnakSt n6i : conn

IlKhai bao biSn d6i tuqng Command

SqlCommand cmmAcc;

IICau l~nh truy vein

string strSql ="select * from tblUser" ;

IIKhai t(;10d6i tuqng Command

cmmAcc =new SqICommand(strSql, conn);

2.3.5 Lo.p dQc dfrIi~u DataReader

Lap DataReader la lap chi dQc, du li~u duQ'C dQc theo mQt chiSu,lap nay huu dVng khi b(;1nc~n tiSt ki~m bQ nha, bai vi t(;1imQt thai diSmchi luu tru mQt m~u tin

ThiSt lap va rna kSt n6i : conn

IIKhai bao biSn d6i tUQ'ng Command

SqlCommand cmmAcc;

IIKhai bao biSn d6i tuqng DataReader

SqlDataReader drdSql;

IICau l~nh truy vc1n

string strSql ="select * from tblUser" ;

IIKhai t(;10d6i tuqng Command

cmmAcc =new SqICommand(strSql, conn);

IID6ng d6i tuqng DataReader

drdSql.CloseO;

Trang 20

Ph~n 1 - Chuang 2 : Ngon ngfr C# Trang 16

2.3.6 L6'p chua dfr li~u DataAdapter

LOp DataAdapter dung dS nh~n dfr li~u tiI dfr li~u ngu6n, sau dotruySn vao DataSet va cac lOp quan h~ nhu DataTable, ngoai ra con c~pnh~t dfr li~u thay d6i vao dfr li~u ngu6n v6'i cac thuQc tinh cuaCommand

4 thuQc Hnh clla Command

• SelectCommand

• InsertCommand

• UpdateCommand

• DeleteCommand

ThiSt Hipva rna kSt n6i : conn

//Khai bao 2 d6i tUQ'IlgCommand

SqlCommand cmmSelect;

SqlCommand cmmDelete;

//Khai bao d6i tUQ'Ilgtham s6

SqlParameter prmSqlDelete, prmSqlUpdate;

//Cau l~nh troy vftn

string strSelect ="select * from tblUser" ;

string strDelete ="delete from tbIUser";

//Khai t~o d6i tUQ'IlgCommand

cmmSelect = new SqICommand(strSelect, conn);

cmmDelete =new SqICommand(strDelete, conn);

//Khai t~o d6i tUQ'IlgSqlDataAdapter tmg v6'i cau select

SqlDataAdapter ada = new SqIDataAdapter(strSelect, conn);

//Gan thuQc tinh l~nh vao d6i tUQ'IlgDataAdapter

ada.SelectCommand =cmmSelect;

ada.DeleteCommand =cmmDelete;

Trang 21

Ph~n 1 - Chuang 2 : Ngon ngfr C# Trang 17

2.4 Cae khai Diem v~ ham Soket

2.4.1 Khai ni~m v~ socket

Trong mo hiOOm~ng dS hai may tiOOco thS trao d6i thong tin cho

nhau thi c~n phai t~o ra kSt n6i gifra chung Trong qua triOO lam vi~c

nguai ta nh~n th~y r&ng OOfrngnha l~p triOOlmg d\lng r~t kho khan trong

vi~c thiSt l~p kSt n6i va truySn tai dfr li~u gifra cac may tiOOvai OOau.Vi

thS nguai ta xay d\IDg khai ni~m socket, khai ni~m nay duQ'c dua ra d~u

nhfrng nam 80 bai cac OOakhoa hQc may tlnh aCalifornia t~i Berkeley

Khai ni~m nay duQ'c dua ra tu y tuang phan t~ng, trong do Windows

sockets Application Programming Interface(Winsock API) la thu vi~n

cac ham do hang Berkeley Software Distribution of UNIX dua ra Nh&m

lam dan gian hoa qua trinh thiSt l~p kSt n6i va chuySn dfr li~u Socket

d\1a tren giao thuc TCPIIP t~o moi truang trung gian cho cac ung d\lng

va giao thuc ben duai

Socket duQ'c xem la m(>t c~u truc dfr li~u truu tuqng (abstraction

data structure) dung t~o ra m(>tkeOOtruySn (channel) dS gai va nh~n dfr

li~u gifra cac process trong cung chuang triOO hay gifra cac may trong

cung moi truang m~ng vai nhau Hay noi m(>t cach dan gian han chung

ta xem socket nhu la "Co' chS 6 c~m" Khi kSt n6i gifra Client va Server

tuang t\1 nhu vi~c c~m phich di~n vao 6 c~m di~n Client thuang duQ'c

xem nhu la phich c~m di~n, con Server duQ'c xem nhu la 6 c~m di~n, m(>t

6 c~m co thS c~m vao do OOiSuphich di~n khac nhau cling nhu m(>t

Server co thS ph\lc V\lcho OOiSuClient khac nhau

Trong qua triOOtruySn, nh~n dfr li~u c~n co m(>tmay dong vai tro la

Server va m(>tmay dong vai tro Client, d~u tien Server phai t~o ra m(>t

socket va cha dQ'icac yeu c~u kSt n6i tu Client Client t~o ra socket cho

rieng no xac diOOvi tri Server (d\1a vao ten cua Server hay dia chi cua

Server trong m~ng) va tiSn haOOvi~c kSt n6i vai Server, sau khi kSt n6i

duQ'c thiSt l~p Client va Server co thS tiSn hanh vi~c trao d6i dfr li~u vai

nhau

2.4.2 ThO'vi~n cac ham socket trong C#

Trong C# nguai ta cling xay dt;rng cac lOp vS socket ph\lc V\l cho

vi~c truySn Uli dfr li~u dS dang va nhaOO chong, cac lOp nay duQ'c diOO

nghTatrong kh6ng gian ten System.Net.Sockets.

Trang 22

-PhAn 1 - Chuong 2 : Ngon ngu C# Trang 18

2.4.2.1 L6'p TcpListener

LOp mly dung dS l~ng nghe k@t n6i tiI Client

LOp TcpListener cung c~p nhUng phuong thuc don gian dS l~ngnghe va nh~n nhUng yeu cAu k@t n6i vao trong co ch@ d6ng bQ.Chung ta co thS dung mQt TcpClient ho~c mQt Socket dS k@tn6i vaimQt TcpListener

f)S t~o mQt d6i tuqng TcpListener chung ta dung mQtIPEndPoint, mQt dia chi IP C\lCbQ va s6 c6ng ho~c chi cAn co s6c6ng thoi

Dung phuong thuc Start dS b~t dAu l~ng nghe nhUng yeu cAuk@tn6i d@n.Phuong thuc Start se tuAn tv nh~n nhung k@tn6i vaocho d@nkhi gQi phuong thuc Stop ho~c no nh~n s6 luqng k@tn6i lat6i da

Chung ta dung phuong thuc AccepSocket ho~cAcceptTcpClient dS nh~n cac k@tn6i va x@pchung vao hang dqi.Hai phuong thuc nay se ngan ch~n (block) f)S tranh duqc diSu

nay, ta co thS dung phuong thuc Pending truac dS kiSm tra nhUng

yeu cAuk@tn6i d@nco duqc su d\lng trong hang dqi hay khong

Phuong thuc Stop dS dong d6i tuong TcpListener, nhung

phuong thuc nay khong dong b~t ky sv k@tn6i thanh cong nao truac

do Ta phai tv dong cac d6i tuqng nay

Khai bao:

Vi du:

system.Net.Sockets TcpListenerusing System.Net.Sockets;

f)S TcpClient k@tn6i va chuySn d6i du li~u thi TcpListenerho~c Socket phai duqc t~o ra dS l~ng nghe yeu cAu Client k@tn6id@n.Vi~c t~o ra cAun6i nay theo hai cach :

T~o lOp TcpClient va gQi mQt trong ba ham Connect

• public void Connect(IPEndPoint);

• public void Connect(IPAddress, int);

• public void Connect(string, int);

Trang 23

Ph~n 1 - Chuang 2 : Ngon ngfr C# Trang 19

Te;tolOp TcpClient dung host name va port clla remote host.Chung ta dung ham GetStream clla lOp TcpClient, ham nay tra

vS mQt d6i tuqng NetworkStream GQi ham Write va Read clla lOpNetworkStream dS gai nh~n dfr li~u Dung ham Close dS giai phongtai nguyen

Khai bao:

Vi du:

system.Net Sockets TcpClientusing System.Net.Sockets;

public TcpC1ient client;

client =new TcpClient(serverName,serverPort );

2.4.2.3 Lo'p NetworkStream

Cung c~p lu6ng dfr li~u trong vi~c truy c~p me;tng

LOp NetworkStream cung c~p nhfrng phuang thuc cho vi~c guinh~n dfr li~u thong qua lu6ng socket LOp NetworkStream ph\lc V\lcho gui nh~n dfr li~u d6ng bQ va b~t d6ng bQ

DS te;tOmQt d6i tUQ'ngNetworkStream ta phai co mQt d6i tUQ'ngsocket dff duQ'c kSt n6i

Vi~c dong d6i tUQ'ng NetworkStream se khong dong socketduQ'c cung c~p NSu mu6n dong Socket luon thi phai chi ro gia tritham s6 Clla socket do

Phuong thuc Write va Read dung dS gui, nh~n dfr li~u qualu6ng d6ng bQ NSu mu6n su d\lng lu6ng rieng bi~t cho vi~c nh~pxu~t thi nen su d\lng cac phuang thuc Begin Write/ EndWrite vaBeginRead/ EndRead

NetworkStream khong h6 trQ' vi~c truy c~p ng~u nhien t6'ilu6ng dfr li~u me;tng.Gia tri thuQc tinh CanSeek chi cho biSt lu6ng

co h6 trQ' vi~c tim kiSm hay khong, thuoc tinh nay thuang tra vSfalse ThuQc tinh Position cho phep l~y gia tri ho~c thiSt l~p vi triClla lu6ng

Trang 24

Ph~n 1 - Chuang 2 : Ngon ngfr C# Trang 20

2.4.2.4 L6'p StreamReader

Thvc hi~n vi~c dQc kYtv tu mQt dong byte duqc rna hoa

StreamReader duqc thiSt kS cho vi~c nh~p ky tv trong mQt rnahoa C\! thS Trong khi do Lap Stream duqc thiSt kS cho vi~c nh~pxuc1tb~ng byte Dung StreamReader cho vi~c dQc tUng dong thongtin tu t~p tin van bim chu~n

Ma hoa m~c dinh cua StreamReader la UTF-8

GetHashCode cho biSt nhfrng thread duqc quim ly Thai gian

s6ng cua tung thread se khong ph\! thuQc vao nhfrng thread khac

Trang 25

Phftn 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 21

"

Phao 2: Xay d\fog chU'O"ogtrioh frog d1}og

?

Ch1fO'ng 1: Tim hien ky thn~t l~p trinh Socket:

1.1 Cae Khai Ni~m CooBan V~ H~ Th6ng M,ng

1.1.1 Mo Hinh M~ng

Truac tien chung ta cftn tim hiSu vc1ndS: t?i sao co S\f phan tftng clla

cac protocol, ich lqi clla vi~c phan tftng

Layer 1

Trong mo hinh ll<lY m6i lap n + 1 Slr d\mg dich V1,1 Clla lap n, ca hai

host A va host B phai co cung ch6ng giao thuc (protocol stack)

£)S co thS chuySn m<)tthong di~p (message) tiI may nay sang may

khac (cac may phai trong cung h~ th<3ngm?ng) no trai qua nhiSu giai

do?n khac nhau, cac giai do?n nay rc1tphuc t?P nhu la: chia nho thong

di~p (message) ra thanh nhiSu goi nho (package), rna hoa cac goi ll<lY ra

d:~mgbit, cac bit nay duQ'c chuySn qua duemg truySn v~t ly d~n may nh~n

Trang 26

Ph~n 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 22

Sau do qua trinh nh~n se thvc hi~n nguQ'c l~i nhu ben gai, nSu qua trinh

l~p ghep g~p phili l6i thi phili thong bao dS truySn l~i vv

Cac giai d<;mnmiy r~t phuc t~p doi hoi nguai l~p trinh trng d\lng philihiSu r5 t~t cil cac co chS ho~t dQng ben duai cua h~ th6ng Vi v~y nguai

ta dua ra y tuang phan t~ng, m6i t~ng se chiu trach nhi~m cung c~p dichV\l cho t~ng ben tren va d6ng thai no cling su d\lng dich V\l cua t~ng benduai cung c~p cho no Nhu thS mQt nguai lam vi~c a t~ng nao he) chiquan tam dSn cac t~ng co quan h~ trvc tiSp vai minh

1.1.2 Mo hinh OSI

Host A

Application Presentation Session Layer Transport Layer Network Layer Datalink Layer Physical Layer

I Segments Ipackets

Trang 27

Phftn 2 - Chuong 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 23

frame sao cho dung thu t\1',cung cfip kha nang truyen khong 16itren dUOng truyen v~t ly cho cac lOp cao hon vfin de d~t ra 0day la phai xac diOO cO' chS dS xac nh~n mQt frame co truyenthaOOcong hay khong (Acknowladge Framje)

• Network layer

LOp nay dinh hu6ng cho goi dfr li~u (package) di tu may goi dSnmay nh~n Phai giai quySt vfin de diOOtuySn (routing), vfin de diachi (addressing), lUQ11ggia chi phi (accouting), va giai quyStd\lllg dQ (collision)

• Transportlayer

LOp nay co nhi~m V\lchia 006 goi dfr li~u dugc dua xu6ng tu lapben tren thanh nhfrng don vi 006 hon dS truyen qua m~lllg,vai s\1'dam bao la dfr li~u dSn nO'i mQt cach chinh xac LOp nay cungcfip cho cac lap ben tren phuong ti~n dS truyen cac message dQcl~p vai cac lOp ben duai

• Session layer

Session layer dieu khiSn qua triOO giao tiSp gifra hai tiSn trinhtren hai may, t~o va kSt thuc kSt n6i gifra cac qua trinh tren cacmay khac OOau

• Presentation layer

LOp nay cung cfip vi~c triOO bay dfr li~u va dinh d~ng rna Nodam bao dfr li~u dSn tu m~ng co thS su d\lng dugc boi lOp Ungd\lng, va dam bao r&ngthong tin dugc goi boi lOp ung d\lng dugctruyen len m~ng

• Application layer

LOp Ung d\lng cung cfip cac dich V\l m~ng cho ung d\lllg cuanguai dung Vi d\l Ung d\lng xu ly van ban dugc ph\lc V\l boidich V\l truyen t~p tin 0 lOp nay Nhu : FTP (truyen OO~nfile),HTTP, E-mai, v.v

Trang 28

Phfrn 2 - Chuang I : Tim hiSu ky thu~t l~p trinh Socket Trang 24

1.1.3 Mo hinhTCP/IP

Chung ta da: khflO sat rno hinh OSI 7 lOp, rno hinh mly chi la rnohinh tharn khao, vi~c ap d\lng rno hinh nay vao th\lc tS la kho co thS th\lchi~n (hi~u su~t kern vi du li~u khi truySn tit may nay sang may kia trongrnl;mgthi phai trai qua t~t ca cac lOp cua rno hinh OSI a ca 2 may), no chi

la tieu chufin dS cac nha phat triSn d\la theo do rna phat triSn cac rno hinhkhac t6i uu han Co r~t nhiSu cac rno hinh khac nhau, hi~n nay rno hinhTCPlIP duQ'c su d\lng ph6 biSn nh~t

Sesstion Transport Network Datalink Physical

Host-to-network

B<}protocol TCP/IP bao gBm~

• TCP (Transmission Control Protocol): day la IO<;ligiao thuc

huang kSt n6i cung c~p kha nang truySn dong du li~u khong 16i,

2 chiSu (full duplex) cho cac qua trinh cho nguai su d\lng

• UDP (User Datagram Protocol): IO<;liprotocol khong thiSt l~p kSt

n6i truac (connectionless) cho cac qua trinh cua user Khonggi6ng nhu TCP, no khong dam bao du li~u khi truySn di co dSnnai chinh xac hay khong

• ICMP (Internet Control Message Protocol): giao thuc xu ly 16i

va di@ukhiSn thong tin giua cac gateway va cac host

Trang 29

Ph~n 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 25

• IP (Internet Protocol): IP la giao thuc cung cfip dich V\lphan ph6icac goi (package) cho TCP, UDP va ICMP

• ARP (Address Resolution Protocol): Giao thuc anh Xl;!1 dia chiinternet thanh dia chi ph~n cUng (MAC address)

• RAPR (Address Resolution Protocol): Giao thuc anh Xl;!rnQt diachi ph~n cung thanh dia chi IP.

Mo hinh TCP/IP duQ'cphan ra thanh 4 lap, trong do 2 lap duai (1 va2) clla rno hinh OSI duQ'c gQP ll;!ithanh 1 lap gQi la Host-to-network, 2lap Session va Presentation Clla OSI khong co trong rno hinh giao thuc

TCP/IP.

Tuang tv nhu rno hinh OSI, trong rno hinh TCP/IP, dfr li~u tu rnQtmay cling di tu lap Application xu6ng Transport, rbi xu6ng tiSp lapInternet, sau cung di tai lap Host-to-network, thong qua duemg day V?t lydSn may khac trong rnl;!ng,dfr li~u a day se di nguQ'c tu duai len Clinggi6ng nhu rno hinh OSI, a day gifra cac lap cua 2 may giao tiSp vai nhauthong qua rnQt giao thuc, gifra lap nay vai lap khac trong cung rnQt maygQi la Interface Lap ben duai cung cfip cac dich V\l cho lap tren

Host-to-network

KSt n6i host vai network sao cho chung co thS chuySn cacthong di~p tai cac dia chi dich, lap nay g~n gi6ng vai lap v~t lytrong rno hinh as!.

Internet layer

Day la lap thvc hi~n rnQt h~ th6ng rnl;!ngco kha nang chuySnrnl;!chcac goi dfr li~u dva tren rnQt lap ffil;!ngConnectionless (khongkSt n6i) hay Connection - Oriented (huang kSt n6i) tuy VaG lOl;!idich V\lrna nguai ta dung rnQttrong 2 cach tren

Nhi~rn V\l clla lap nay la dam bao cho cac host chuySn cac goi(package) VaGbfit ky h~ th6ng rnl;!ngnao va chuySn chung dSn dichrna khong ph\l thuQc VaGvi tri Clladich dSn

Trong rno hinh TCP lIP nguai ta dua ra khai ni~rn dia chi IP d@dinh

dia chi cho cac host tren rnl;!ng

Trang 30

Phfin 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 26

Transport layer

LOp transport duQ'c thiSt kS dS cho cac phfin tu ngang cftpa lOphost co thS d6i tho~i v6'i nhau

Hai giao thuc chinh la :

• TCP: la mQt Connection Oriented Protocol, cho phep chuySnmQt chu6i byte tu host nay sang host kia rna khong co l6i (dung

co chS phan chia dfr li~u ra thanh cac goi nho (package) a mayngu6n va gom l~iamay dich)

• UDP: la mQt connectionless Protocol duQ'c xay d\ffig cho cac ungd\mg khong mu6n su d\mg cach truySn theo mQt thu t\1'Clla TCPrna mu6n t\1'minh th\1'chi~n diSu do (tuy theo m\lc dich clla ungd\lng rna nguai ta dung UDP hay khong)

Khai niem vS port:

MQt may co thS lien l~c v6'i mQt may khac trong m~ng qua diachi IP Tuy nhien, v6'i dia chi nhu v~y khong dll cho mQt processclla may lien l~c v6'i mQt process Clla may khac Va vi v~yTCP/UDP da:dung s6 nguyen (16 bit) dS d~t ta nen s6 hi~u port.Nhu v~y, dS hai process Clla hai may bftt kY trong m~ng co thS giaotiSp duQ'c v6'i nhau thi m6i frame acftp Network co IP g6m :

• Protocol (TCP/UDP)

• Dia chi IP clla may gai

• S6 hi~u port clla may gai

• Dia chi IP clla may dich

• S6 hi~u port clla process amay dich

Vi d\l: {TCP,127.1 0.1 0.11,6000,127.1 0.1 00.1 0,7000};

Application layer (process layer)

Chua cac dich V\l nhu trong cac lOp Session, Presentaion,Application clla mo hinh OSI, vi d\l: Telnet (Terminel Acesss) cho phepuser tham nh~p vao mQt host a xa va lam vi~c a do nhu dang lam vi~ctren may local (C\lCbQ), FPT (File Transfer Protocol) la cong C\l giupcho chung ta chuySn cac file cho nhau, SMTP (Simple Mail TransferProtocol) cling la mQt d~ng clla FTP nhung no co d~c diSm rieng, DNS(Domain Name Service) dung dS anh x~ ten host thanh dia chi IP vanguQ'c l~i

Trang 31

Ph~n 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 27

1.1.4 Giao Thuc TCP va UDP

• Giao thuc TCP

TCP (Transmission Control Protocol): day la lo~i giao thuc gui tunggoi dfr li~u di, noi OO~ntheo giao thuc nay phai co trach OOi~mthong bao

va kiSm tra xem dfr li~u da dSn du hay chua, co 16i hay khong co 16i

Truac khi chuySn dfr li~u bao gia cling co S\f kSt nai gifra may gui va

may nh~n Do phai bao dam dfr li~u duQ'c truySn chiOOxac va luon duytri kSt n6i nen su dVng giao thuc TCP c~n chiSm them mQt s6 tai nguyencua h~ th6ng va cach l~p triOOcho giao thuc nay hoi kho ( phai th\fc hi~n

cac buac kiSm tra dfr li~u theo yeu c~u TCP).

MB hioh k~t oBi theo giao thuc TCP

Server

~.

Client

Create the socket

Create the serversocket

Accept NewConnection

Acquire Streamand ConductConversation

Close Stream andSocket

Exchange data

Acquire Streamand ConductConversation

Close Stream andSocket

Trang 32

Phfrn 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 28

• Giao thuc UDP:

UDP (User Datagram Protocol): lo~i giao thuc nay nguQ'c l~i khongdang tin c~y l~m, khong co S\f k~t n6i truac nao gifra nO'igui va nO'inh~n,

dfr li~u gui di m?c dinh r~ng may tinh a dfru nh~n luon a tr~ng thai s~nsang dS ti~p don dfr li~u gui d~n N~u dfr li~u gui d~n bi 16i trong quatrinh truy@nhay khong nh~n duQ'c dfry du giao thuc UDP cling khong cothong tin phfm h6i gi l~i cho nO'i gui Tuy nhien UDP khong doi hoinhi@utai nguyen cua h~ th6ng va cach l~p trinh l~i dan gifm

Mo hlnh k~t nBi theo giao thuc UDP

Receive data

Send data toclient

yes

Close Socket

Hinh 1.5

yesClose Socket

no

Trang 33

Phfrn 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 29

TruySn dfr li~u theo giao thuc UDP thuemg dugc dung trong OOfrngung d\lng khong doi hoi S\f chiOOxac cao nhu dich V\l thong bao gia haycac dich V\lgiri OO~ntin

ChiOO vi OOfrngUti diSm do nhfrng OOal~p triOOv~n sir d\lng UDPcho trng d\lng cua hQ, khi do nguai ta dung nhiSu cach dS xac OO~nchogoi dfr li~u di dSn dich chinh xac va trQn vyn

Mot vi du minh hoa co chS xac nhan:

1 Client g6i mQt goi dfr li~u (package) cho Server va cha dgi xacnh~n tu Server

2 Server OO~ndugc goi dfr li~u se tra vS thong di~p phan h6i choClient xac OO~ngoi dfr li~u da nh~n dugc

NSu Client cha dgi han mQt khoang thai gian cho phep (time out)rna khong OO~ndugc phan h6i tu Server thi no cho la goi dfr li~u khong

di dSn dich va truySn hili,nSu sau OOiSulfrn khong nh~n dugc phan h6i tuServer no gia dinh r~ng kSt n6i bi dUt hay Server bi hong hoc

1.1.5 Dla Chi IP

• Gi6'i thieu dia chi IP

Tiit ca cac may trong h~ th6ng m~ng (LAN, WAN, Internet) dSu co

it ooiit 2 dia chi: dia chi v~t ly (Mac Address) va dia chi Internet Dia chiv~t ly con dugc gQi la Ethernet address la mQt day bit g6m 48 bit dugcgan b6i cac nha san xuiit, dia chi nay dugc biSu diSn du6'i d~ng s6 th~pl\lc phan (hecxa)

Class Network

32 bits( 4 byte)Dia chi IP

Host ID

Bang 1.1NSu may tiOOdugc n6i m~ng v6'i Internet thi dia chi IP phai do Nrc(Network Information Center) ciip

Trang 34

Phfu1 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 30

Host ID

• Phan Loai Dia Chi IP

Co t~t ca 5 l6p dia chi IP nhung hi~n nay co 3 l6p duQ'c su d\lng

ID bit d~u tien co gia tri 1 Ph~n Network ID co 16 bit (2 byte) va ph~nHost ID co 16 bit nhu v~y s6 dia chi duang ml;lng trong l6p B nay la16.382(214 -2) va s6 dia chi host 65.534(216 -2)

Trang 35

Ph~n 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 31

Co thS nh~n biSt dia chi lOp C thong qua 2 bit d~u tien trong ph~nNetwork ID, hai bit nay dugc b~t len 1 Ph~n NetWork ID co2,097,150(221-2) dia chi dUOng m<;mgva ph~n Host ID co 254(28-2) diachi host

Chung ta co thS xem s6 dia chi Host ID va Network ID qua bang:L6'p M~ng

ABC

Bang 1.2

So host tren mQtdia chi man16,777,21465,534254

Vi d\l : dia chi IP:192.125.125.3

Subnet mask :255.255.255.0

1.2 Da nhi~m

Luc ban d~u, l~p trinh vien khong co h~ diSu hanh rna giao tiSp tr\fc tiSpvai may tinh Sao do, l~p trinh vien xu ly t~p tin batch dan gian tren h~ diSuhanh h6 trg th\fc thi nhfrng tiSn trinh dan Ie d cac h~ th6ng Single-tasking,

m<)tkhi tiSn trinh (process) dugc kh6i d<)ngthi no se ch~y hoan t~t truac khi

tiSn trinh khac co thS dugc kh6i d<)ng,vi d\l nhu h~ diSu hanh DOS

DS co thS th\fc thi m<)t chuang trinh tren h~ diSu hanh single-taskingthuOng phai t6n nhiSu thai gian cha dgi cho nhfrng tiSn trinh co thai gian xu

ly Hiunhu I/O, khong phat huy t6i da kha nang CPU (vi phai cha nhUng tiSntrinh I/O)

DS giai quySt v~n dS nguai ta dua ra h~ diSu hanh multitasking

Nhu v~y multitasking duQ'c dinh nghia la vi~c thi himh d6ng thai 2 haynhiSu tiSn trinh tren m<)tCPU

NhiSu tiSn trinh kh6i d<)ngdS ch~y tren m<)tCPU H~ diSu hanh co trachnhi~m chuySn dbi cac tiSn trinh th\fc thi tren CPU Cach thuc h~ diSu hanh

Trang 36

Ph~n 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 32

di@u khiSn thi hanh d6ng thai nhi@u tiSn trinh b~ng cach gan cho CPU mQttiSn trinh a mQt thai diSm xac dinh H~ di@u hanh multitasking t~o nen ao giacthi hanh d6ng thai b~ng cach chia thanh nhi@u khe thai gian

Khi co nhi@u tiSn trinh thi hanh cung mQt luc, m6i tiSn trinh duQ'c CPUph\lc V\l trong mQt s6 IUQ'llgkhe thai gian nh~t dinh Nhu v~y thvc sv trongmQt thai diSm CPU chi ph\lc V\l cho mQt tiSn trinh duy nh~t, nhung khoangthai gian chuySn xu ly giua cac tiSn trinh r~t nh6 nen ta co cam giac chungduQ'c thi hanh d6ng thai

Vi d\l:

Tl,T2 la 2 tiSn trinh xu ly d6ng thai

tj la khe thai gian thu i

T2

Bang 1.3

1.3 Da Luang (multithreading)

1.3.1 Khai ni~m luang

Cac chuang trinh truy@n th6ng thvc thi theo mQt kiSu tu~n tv v6'imQt lu6ng (thread) di@u khiSn dan dQc, mQt sv n6i tiSp cac l~nh duQ'cthvc thi bai mQt tiSn trinh, mQt tiSn trinh nhi@u han mQt lu6ng di@u khiSnduQ'c gQi la mQt tiSn trinh da lu6ng (multithreaded processor) MQt thread

la mQt lu6ng di@u khiSn tu~n tv dan trong mQt chuang trinh, no la sv n6itiSp cac l~nh duQ'c thvc thi trong mQt tiSn trinh

M6i thread co mQt diSm thvc thi rieng Ie. Cac thread thuang thamkhilO dSn nhu la cac thread thvc thi (thread execution), bai vi cac threadtrong mQt tiSn trinh la kSt hQ'P nhung l~nh n6i tiSp nhau Trong mQtchuang trinh da lu6ng co thS co nhiSu thread ch~y d6ng thai trong mQtkh6ng gian dia chi, m6i thread co thS duQ'c xem nhu mQt processor ao

Trang 37

Ph~n 2 - Chuang 1 : Tim hiSu ky thu~t l~p trinh Socket Trang 33

v6i bQ dSm chuang trinh (process counter), stack va t~p thanh ghi rieng.Cac thread la dan vi cab~mCllasg thgc thi su dVng CPU

M6i thread trong mQt tiSn trinh chC;lYdQc l~p v6i cac thread khac.T~t ca cac thread trong mQt tiSn trinh chia se mQt khong gian dia chichung va co quySn truy xu~t ngang nhau dSn t~t ca cac tai nguyen CllatiSn trinh Vi thread chi a se chung vung khong gian dia chi nen hanhdQng Clla mQt thread co thS anh hUOng dSn nhung thread khac trong mQttiSn trinh

Khai ni~m vS thread va process la tuang tg, mQt process co quySn

sa hfru tai nguyen (thi dV: memory, rna file, ), trong khi cac thread ladan vi co thS ra l~nh lam vi~c H~u hSt cac h~ diSu hanh multithread dinhthai cac thread chC;lytren mQt CPU NhiSu thread khong c~n thiSt chC;lysong song Tren mQt dan xu ly cac thread dugc chia khe thai gian bai h~diSu hanh trong khi tren cac may co nhiSu bQ xu ly cac thread chC;lysongsong tren nhiSu bQ vi xu ly khac nhau

Thread h6 trg l~p trinh d6ng thai va thuang dugc dung cho cac tiSntrinh song song trong mQt trinh tmg dVng Cac tiSn trinh quan trQng dugcthi hanh song song trong mQt tmg dVng Thread dS tC;lohan la cac tiSntrinh, va vi~c chuySn d6i ngu canh cling nhanh han cac tiSn trinh' Vi vi~cduy tri ngu canh Clla thread cling nhy han nhiSu so v6i process, cho nenthread con dugc gQi la LightWeight Processes (LWP)

MQt vi~c r~t quan trQng c~n nh6 la mQt ung dVng v6i r~t nhiSu congvi~c c~n thgc hi~n rna no chi co mQt thread se chC;lych~m han so v6i cacmay co nhiSu bQ xu ly cho dSn khi tmg dVng dugc chi a thanh nhiSuthread dS thgc thi MQt thread trong mQt tiSn trinh co thS chC;lytren b~t ky

bQ xu ly nao va vi thS co kha nang khai thac tinh song song vim co Cllacac may co nhiSu bQ xu ly

1.3.2 Nhfrng ti~n feh khi dung thread

NSu dung thread mQt cach dung d~n thi thread co cac ti~n 19i sau:

• Tang thong lugng va hi~u nang t6t han

Cac chuang trinh Multithreaded co thS thgc thi tren moi truang

Multiprocessor(MP) Trong moi truang Multiprocessor, cacthread nhu la tiSn trinh thgc thi song song tren nhiSu CPU nhuv~y thong lugng va sg thgc thi t6t han Thread co thS khai thackha nang song song v6n co Clla cac may co nhiSu bQ xu ly nhuv~y se rut ng~n thai gian hoan thanh cong vi~c

Trang 38

Phfin 2 - Chuang 1 : Tim hi@uky thu~t l~p trinh Socket Trang 34

Con cac may dan xu ly, cac thread dugc cung c~p thong luqngt6t han boi vi CPU co th@xu ly nhiSu thread d6ng thai khi comQt vai thread bi block tren tiSn trinh I/O Vi d\l mQt tiSn trinh co

2 thread thvc thi tren may dan xu ly, khi mQt thread bi blocktrong khi g9i mQt ham h~ th6ng (vi d\l file I/O), thi thread con l~iv~n tiSp t\lC ch~y

• Tang tinh hi~u qua:

H~ th6ng phai t~n d\lng dugc CPU 100% thai gian

• Thai gian dap tmg hgp ly:

CVCti@uhoa thai gian h6i dap cho cac tuang tac cua nguai dung

• Thai gian lUll l~i cua h~ th6ng:

Cvc ti@uhoa thai gian hoan t~t cac tac V\lxu ly theo 10

• Thong luqng t6i da:

Cvc d~i hoa s6 cong vi~c dugc xu ly trong mQt dan vi thai gian

• Tang tinh song song :

Trong mo hinh l~p trinh Client - Server, cac chuang trinh Server

co th@xu~t hi~n nhu mQt thread xu ly d6ng thai cho m6i Client

1.3.3 Cae kh6 khan khi dung thread:

• Phuc t~p

• Kho ki@mtra va b~t 16i

• Kha nang bi Deadlock

• Moi truang Thread khong an toano

Ngày đăng: 01/09/2023, 22:10

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w