You are on page 1of 7

Khoa Cng ngh Thng tin Trng H KHTN Tp.

HCM B mn Mng My Tnh v Vin Thng

Cc hm thnh phn ca lp CSocket (MFC)


Lnh ny dng to socket
BOOL Create( UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, LPCTSTR lpszSocketAddress = NULL );

- nSocketPort: cng trn host c dng vi Socket; nu bng 0 th mc nh MFC s t chn port. - nSocketType l SOCK_STREAM (TCP) hay SOCK_DGRAM (UDP). - lpszSocketAddress: a ch IP ca host dng socket truyn thng. V d: 172.29.6.240. - Gi tr tr v: khc 0 nu thnh cng, ngoi ra th bng 0.

Lnh dn a ch cc b n socket
BOOL Bind( UINT nSocketPort, LPCTSTR lpszSocketAddress = NULL ); BOOL Bind ( const SOCKADDR* lpSockAddr, int nSockAddrLen );

- nSocketPort: cng xc nh ng dng socket.

Khoa CNTT Trng H KHTN

-7-

Khoa Cng ngh Thng tin Trng H KHTN Tp. HCM B mn Mng My Tnh v Vin Thng

- lpszSocketAddress: a ch mng. - lpSockAddr: tr n cu trc SOCKADDR cha a ch cho socket ny. - nSockAddrLen: chiu di ca a ch lpSockAddr c tnh theo byte. - Gi tr tr v: khc 0 nu thnh cng, ngoi ta = 0.

struct sockaddr { unsigned short sa_family; char sa_data[14]; };

- y l cu trc lu tr a ch IP my gia nhp vo truyn thng socket windows.

Hm gii phng socket


Close()

Hm thit lp kt ni n server
BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort ); BOOL Connect( const SOCKADDR* lpSockAddr, int nSockAddrLen );

- Gi hm ny thit lp 1 kt ni n 1 socket. - lpszHostAddress: a ch mng ca socket m cn c kt ni n, c th l chui s phn cch bi du chm, vd: 172.29.6.240.
Khoa CNTT Trng H KHTN

-7-

Khoa Cng ngh Thng tin Trng H KHTN Tp. HCM B mn Mng My Tnh v Vin Thng

- nHostPort: cng xc nh ng dng socket. - lpSockAddr: tr n cu trc SOCKADDR cha a ch ca socket c kt ni. - nSockAddrLen: chiu di ca a ch trong lpSockAddr c tnh theo byte. - Gi tr tr v: khc 0 nu thnh cng, tht bi = 0.

Hm lng nghe cc yu cu kt ni
BOOL Listen( int nConnectionBacklog = 5 );

- Hm ny ch h tr cho socket dng SOCK_STREAM. - nConnectionBacklog: chiu di ti a m hng i kt ni cha c chp nhn c th tng. Phm vi l t 1 n 5. - Gi tr tr v: khc 0 = thnh cng, bng 0 = th bi.

Hm chp nhn mt kt ni trn socket


virtual BOOL Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL );

- Socket mi cho kt ni - lpSockAddr tr n cu trc SOCKADDR nhn a ch mng ca socket kt ni (trn client). - Nu lpSockAddr hay lpSockAddrLen ly gi tr mc nh NULL th s khng c thng tin t socket (trn client) c chp nhn c tr v.

Khoa CNTT Trng H KHTN

-7-

Khoa Cng ngh Thng tin Trng H KHTN Tp. HCM B mn Mng My Tnh v Vin Thng

- lpSockAddrlen cha chiu di thc s ca lpSockAddr khi tr v theo byte. - Gi tr tr v: khc 0 nu thnh cng v bng 0 nu tht bi.

Hm nhn d liu t socket (TCP)


virtual int Receive( void* lpBuf, int nBufLen, int nFlags = 0 );

- lpBuf: vng m cha d liu. - nBuffLen: chiu di ca vng m tnh theo byte. - nFlag: cch nhn d liu, s dng gi tr mc nh l 0. - Gi tr tr v l s byte nhn c, nu socket ng th gi tr tr v l 0, ngoi ra gi tr s tr v l SOCKET_ERROR.

Hm gi d liu n socket (TCP)


virtual int Send( const void* lpBuf, int nBufLen, int nFlags = 0

);

- lpBuf: vng m cha d liu truyn i. - nBufLen: chiu di vng m. - nFlag: cch truyn d liu, s dng gi tr mc nh l 0.

Khoa CNTT Trng H KHTN

-7-

Khoa Cng ngh Thng tin Trng H KHTN Tp. HCM B mn Mng My Tnh v Vin Thng

- Gi tr tr v l s ky t c gi, nu tht bi gi tr tr v l SOCKET_ERROR.

Hm nhn d liu t Socket (UDP)


int ReceiveFrom( void* lpBuf, int nBufLen, CString& rSocketAddress, UINT& rSocketPort, int nFlags = 0 ); int ReceiveFrom( void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags = 0 );

- Hm nhn 1 datagram v lu a ch trong rSocketAddress hay trong cu trc SOCKADDR t 1 ngun c th. - lbBuf: vng m cha d liu nhn c. - rSocketAddress: tham chiu n i tng CString nhn a ch IP. - rSocketPort: tr n 1 bin UINT cha port. - lpSockAddr: tr n cu trc cha a ch ngun. - lpSockAddrLen: cha chiu di ca a ch ngun lu trong lpSockAddr. - nFlag: c th cch gi.

Khoa CNTT Trng H KHTN

-7-

Khoa Cng ngh Thng tin Trng H KHTN Tp. HCM B mn Mng My Tnh v Vin Thng

- Gi tr tr v l s byte nhn c, = 0 nu socket b ng, = SOCKET_ERROR nu c li.

Hm gi d liu n socket (UDP)


int SendTo( const void* lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress = NULL, int nFlags = 0 ); int SendTo( const void* lpBuf, int nBufLen, const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags = 0

);

- lpBuf: vng m cha d liu truyn. - nBufferLen: chiu di ca d liu trong vng m tnh theo byte. - nHostPort: port ng dng. - lpszHostAddress: a ch ca my c kt ni, vd:172.29.6.240. - lpSockAddr: tr n cu trc cha a ch ca socket ch. - lpSockAddrLen: chiu di ca a ch lu trong lpSockAddr tnh theo byte. - Tr v s ky t c gi, ngoi ra tr v SOCKET_ERROR khi c li.
Khoa CNTT Trng H KHTN -7-

Khoa Cng ngh Thng tin Trng H KHTN Tp. HCM B mn Mng My Tnh v Vin Thng

Hm v hiu ho lung chc nng


BOOL ShutDown( int nHow = sends

);

- Hm lm v hiu ha send, receive hay c hai. - nHow = 0: disable receive - nHow = 1: disable send - nHow = 2: disable both - Tr v gi tr khc 0 nu thnh cng, v tr v 0 nu li gi hm tht bi.

Ht

Khoa CNTT Trng H KHTN

-7-

You might also like