You are on page 1of 6

TRNG CAO NG NGH NG THP KHOA CNG NGH THNG TIN --------Bi ging:

C BN V WINSOCK
I. Khi to Winsock lp trnh c Winsock chng ta s khai bo th vin winsock2.h (cha cc prototypes) v 1 file lib (chnh l file .cpp c bin dch thnh .lib) c tn l ws2_2.lib. By gi hy to 1 project Windows32 Console Project. Lu : Chng ta khng khai bo trong file .cpp c hm main m khai bo trong file stdafx.h. y l cch khai bo th vin ca Visual C++. #include <tchar.h> . #include <winsock2.h> #pragma comment (lib,"ws2_32.lib") V by gi s l nhng hm khi to Winsock: int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData); Trong : - wVersionRequested l phin bn th vin m mnh s dng. y s l gi tr 0x0202 c ngha l phin bn 2.2. Chng ta c th dng macro MAKEWORD(2,2) tr v gi tr 0x0202. - lpWSData l mt s thng tin b sung s c tr v sau khi gi khi to Winsock.: typedef struct WSAData { WORD wVersion; // Phin bn hin ti WORD wHighVersion; // Phin bn c th h tr char szDescription[WSADESCRIPTION_LEN + 1]; // Ghi ch char szSystemStatus[WSASYS_STATUS_LEN + 1]; // Trng thi h thng unsigned short iMaxSockets; // Khng s dng t Version 2 tr i unsigned short iMaxUdpDg; // Khng s dng t Version 2 tr i char FAR * lpVendorInfo; // Khng s dng t Version 2 tr i } WSADATA, FAR * LPWSADATA; V cui cng l hm hy Winsock khi kt thc chng trnh. nt WSACleanup (void); Chng trnh u tin: #include "stdafx.h" using namespace std; int _tmain(int argc, _TCHAR* argv[]) {
Trang 1

WSADATA SData; int iResult = WSAStartup(0x0202,&SData); if (iResult!=0){ cout << "KHONG THE KHOI DONG WINSOCK"; return 1; } II. KIM TRA V X L LI TRONG WINSOCK Li khi send data WSANOTINITIALISED A successful AfxSocketInit must occur before using this API. WSAENETDOWN The Windows Sockets implementation detected that the network subsystem failed. WSAEACCES The requested address is a broadcast address, but the appropriate flag was not set. WSAEINPROGRESS A blocking Windows Sockets operation is in progress. WSAEFAULT The lpBuf or lpSockAddr parameters are not part of the user address space, or the lpSockAddr argument is too small (less than the size of a SOCKADDR structure). WSAENETRESET The connection must be reset because the Windows Sockets implementation dropped it. WSAENOBUFS The Windows Sockets implementation reports a buffer deadlock. WSAENOTCONN The socket is not connected (SOCK_STREAM only). WSAENOTSOCK The descriptor is not a socket. WSAEOPNOTSUPP MSG_OOB was specified, but the socket is not of type SOCK_STREAM. WSAESHUTDOWN The socket has been shut down; it is not possible to call SendTo on a socket after ShutDown has been invoked with nHow set to 1 or 2. WSAEWOULDBLOCK The socket is marked as nonblocking and the requested operation would block.

Trang 2

WSAEMSGSIZE The socket is of type SOCK_DGRAM, and the datagram is larger than the maximum supported by the Windows Sockets implementation. WSAECONNABORTED The virtual circuit was aborted due to timeout or other failure. WSAECONNRESET The virtual circuit was reset by the remote side. WSAEADDRNOTAVAIL The specified address is not available from the local machine. WSAEAFNOSUPPORT Addresses in the specified family cannot be used with this socket. WSAEDESTADDRREQ A destination address is required. WSAENETUNREACH The network cannot be reached from this host at this time. Li khi receive data WSANOTINITIALISED A successful AfxSocketInit must occur before using this API. WSAENETDOWN The Windows Sockets implementation detected that the network subsystem failed. WSAENOTCONN The socket is not connected. WSAEINPROGRESS A blocking Windows Sockets operation is in progress. WSAENOTSOCK The descriptor is not a socket. WSAEOPNOTSUPP MSG_OOB was specified, but the socket is not of type SOCK_STREAM. WSAESHUTDOWN The socket has been shut down; it is not possible to call Receive on a socket after ShutDown has been invoked with nHow set to 0 or 2. WSAEWOULDBLOCK The socket is marked as nonblocking and the Receive operation would block. WSAEMSGSIZE The datagram was too large to fit into the specified buffer and was truncated.

Trang 3

WSAEINVAL The socket has not been bound with Bind. WSAECONNABORTED The virtual circuit was aborted due to timeout or other failure. WSAECONNRESET The virtual circuit was reset by the remote side.

III. GIAO THC HNG KT NI (TCP) TCP ( Transmission Control Protocol) l mt giao thc hng kt ni, n cung cp mt ng truyn d liu tin cy gia hai my tnh. Tnh tin cy th hin vic n m bo d liu c gi s n c ch v theo ng th t nh khi n c gi. Khi hai ng dng mun giao tip vi nhau mt cch tin cy, chng s to ra mt ng kt ni gia chng v gi d liu thng qua ng ny. Cch trao i d liu ny tng t nh cch chng ta gi in thoi. Hy ly v d khi bn mun ni chuyn vi mt ngi h hng tn l Beatrice sng ti Kentuky, bn nhc in thoi ln v quay s ca ngi h hng ny, lc mt kt ni s c to ra gia in thoi ca bn v ca ngi h hng, sau bn gi v nhn d liu ( di dng m thanh) bng cch ni v nghe qua in thoi ca bn. Ton b vic thc hin kt ni v truyn d liu gia hai my in thoi c thc hin bi cng ty in thoi thng qua cc trm v ng dy in thoi, nhim v duy nht ca bn l quay s cung cp cho nh cung cp dch v in thoi bit s in thoi bn mun lin lc. Ging nh vy, trong vic truyn d liu qua mng th TCP ng vai tr nh nh cung cp dch v in thoi v d trn, n lm nhim v to kt ni v truyn d liu gia hai im giao tip m bo d liu khng b mt v n ch theo ng trt t nh khi chng c gi. Tnh tin cy ca ng truyn c th hin hai c im sau: * Mi gi tin cn gi s n c ch. lm iu ny th mi ln pha gi gi xong mt gi tin n s ch nhn mt xc nhn t bn nhn rng nhn c gi tin. Nu sau mt khong thi gian m pha gi khng nhn c thng tin xc nhn phn hi th n s pht li gi tin. Vic pht li s c tin hnh cho n khi vic truyn tin thnh cng, tuy nhin sau mt s ln pht li max no m vn cha thnh cng th pha gi c th suy ra l khng th truyn tin c v s dng vic pht tin. * Cc gi tin s c trnh ng dng nhn c theo ng th t nh chng c gi. Bi cc gi tin c th c dn i trn mng theo nhiu con ng khc nhau trc khi ti ch nn th t khi ti ch ca chng c th khng ging nh khi chng c pht. Do m bo c th sp xp li cc gi tin pha nhn theo ng th t nh khi chng c gi, giao thc TCP s gn vo mi gi tin mt thng tin cho bit th t ca chng trong c khi tin chung c pht nh vy bn nhn c th sp xp li cc gi tin theo ng th t ca chng. Nh vy c th thy TCP cung cp cho chng ta mt knh truyn thng imim phc v cho cc ng dng i hi giao tip tin cy nh HTTP ( HyperText Tranfer Protocol), FTP ( File Tranfer Protocol), Telnet Cc ng dng ny i hi mt knh giao tip tin
Trang 4

cy bi th t ca d liu c gi v nhn l yu t quyt nh n s thnh cng hay tht bi ca chng. Hy ly v dng khi HTTP c s dng c thng tin t mt i ch URL, d liu phi c nhn theo ng th t m chng c gi nu khng th m bn nhn c c th l mt trang HTML vi ni dung ln xn hoc mt file zip b li v khng th gii nn IV. GIAO THC HNG KHNG NI KT(UDP) UDP ( User Datagram Protocol) l giao thc khng hng kt ni, n gi cc gi d liu c lp gi l datagram t my tnh ny n my tnh khc m khng m bo vic d liu s ti ch. phn trc chng ta thy trong giao thc TCP khi hai chng trnh mun giao tip vi nhau qua mng chng to ra mt kt ni lin kt hai ng dng v trao i d liu qua kt ni . Tri li giao thc UDP khi hai ng dng mun giao tip vi nhau chng khng to ra kt ni m ch n thun gi cc gi tin mt cch c lp t my ny ti my khc. Cc gi tin nh vy gi l cc datagram. Vic gi cc gi tin nh vy tng t nh vic chng ta gi th qua ng bu in: Cc bc th bn gi c lp vi nhau, th t cc l th l khng quan trng v khng c g m bo l th s n c ch. Trong truyn thng bng UDP th cc datagram ging nh cc l th, chng cha thng tin cn gi i cng thng tin v a ch ch m chng phi n, tuy nhin chng khc vi cc l th mt im l nu nh trong vic gi th, nu l th ca bn khng n c ch th n s c gi tr li ni gi nu trn l th bn c i ch gi cn UDP s khng thng bo g cho pha gi v vic l th c ti c ch hay khng. Vy nu UDP l mt giao thc khng m bo giao tip tin cy th ti sao ngi ta li dng chng. iu l bi nu nh giao thc TCP m bo mt kt ni tin cy gia cc ng dng th chng cng i hi nhiu thi gian truyn tin do chng phi kim tra cc header ca cc gi tin m bo th t ca cc gi tin cng nh pht li cc gi tin khng n c ch do trong mt s trng hp th iu ny l khng cn thit. Di y l mt s trng hp trong giao thc khng hng kt ni l thch hp hn so vi giao thc hng kt ni: Khi ch mt gi d liu cn truyn i v vic c n c ch hay khng l khng quan trng, s dng giao thc UDP s loi b c cc th tc to v hy kt ni. So snh mt cht chng ta s thy giao thc hng kt ni TCP phi dng n 7 gi tin gi mt gi tin do n cn pht v nhn cc gi tin yu cu v chp nhn kt ni cng nh cc gi tin yu cu v xc nhn vic hy kt ni, trong khi giao thc khng hng kt ni UDP ch s dng duy nht mt gi tin chnh l gi tin cha d liu cn chuy i. Chng ta hy ly v d v mt server ng h, nhim v ca n l gi thi gian hin ti ca n cho cc ng dng trn client khi c yu cu. Nu gi tin cha thi gian b tht lc trn ng truyn v khng ti c ch th client cng s khng i hi server phi gi li gi tin bi khi gi tin c pht li ln hai v ti c client th thng tin thi gian cha trong n khng cn ng na. Nu client to ra hai yu cu v nhn c cc gi tin tr li khng theo ng th t m server gi th client cng khng gp phi vn g bi n hon ton c th suy ra
Trang 5

c rng cc gi khng c chuyn n ng th t bng cch tnh thi gian c cha trong cc gi. Trong trng hp ny tnh tin cy ca TCP l khng cn thit bi n lm gim hiu xut v c th cn tr hot ng ca server. Trng hp th hai chng ta xem xt vic s dng giao thc UDP l cc ng dng i hi cht ch v thi nh cc ng dng nghe audio thi gian thc . Trong trng hp ny vic hng ti mt knh giao tip tin cy khng phi l u im m ngc li l mt nhc im bi nu vic phi ch cho khi mt gi tin b mt c nhn c th gy ra nhng tc ng d nhn thy hoc khin chng trnh phi tm dng. Vi cc ng dng ny giao thc khng hng kt ni c pht trin v chng lm vic tt hn hn. Chng ta c th tham kho ng dng RealAudio, trong ngi ta s dng mt giao thc chy pha trn giao thc khng hng kt ni truyn cc d liu m thanh qua mng. Mt trng hp khc m chng ta c th thy xem xt vic s dng giao thc khng hng kt ni l khi chng ta cn kim tra tnh trng ca kt ni mng, iu ny cc bn c th thc hin trong h iu hnh Window, Unix vi cu lnh Ping. lm vic ny bn s dng cu lnh Ping trn my th nht v cung cp cho n a ch ca my th hai m bn cn kim tra kt ni. Khi cu lnh Ping s pht i gi tin kim tra ti my th hai, nu my th hai nhn c gi tin kim tra n s pht li gi tin tr li, khi thng qua vic c nhn c gi tin t my th hai hay khng cu lnh Ping c th xc nh c tnh trng kt ni gia hai my. Vic kim tra c th tin hnh nhiu ln m bo chnh xc ca kt qu. Nh vy y thng tin ma cu lnh Ping cn bit l v cc gi tin khng n c ch v cc gi tin khng n ng th t c th xc nh c kt ni l tt hay xu. Do nu s dng mt knh tin cy y th s khng th c cn c xc nh cht lng ca kt ni bi knh tin cy s m bo cc gi tin lun n ch v n ng th t thng qua cc c ch kim tra v pht li.

Trang 6

You might also like