seminar socket
DESCRIPTION
Seminar SocketTRANSCRIPT
-
Ni dung chnh*
-
Gii thiu v SocketSockets cung cp mt interface lp trnh mng ti tng Transport.Mt socket l mt end-point ca mt lin kt gia hai ng dng mng. Nhiu NNLT: C, C++, Java, VB, C#, . . .Windows Socket Application Programming Interface (Winsock API) Winsock h tr xy dng cc ng dng mng trn nn TCP/IP. *
-
Ni dung chnh*
-
Cc bc cn thc hin:1. Xc nh kin trc mng: Client Server, Peer-to-Peer 2. Giao thc s dng tng Transport: TCP, UDP 3. Cc port s dng Server v Client 4. Giao thc tng ng dng khi trao i d liu gia hai end-host 5. Lp trnh
Xy dng UD Client-Server vi Socket*
-
1/ Xc nh bi tp v n:Kin trc Client ServerGiao thc s dng tng Transport l TCP
2/ Ghi ch:XD UD theo giao thc tng UD c nh ngha sn phi tun th ng quy nh tham kho RFC (request for comment)Peer-to-Peer: 1 UD c c Client - Server Xy dng UD Client-Server vi Socket*
-
SERVERCLIENTTo socket lng nghe kt ni v ng k port cho socketServer.Create (port)Lng nghe CC kt ni t clientServer.Listen()i 1 kt ni n t ClientTo socket kt ni n serverClient.Create ()Kt ni n ServerClient.Connect (IP, port)Chp nhn 1 kt ni t clientServer.Accept(s)Truyn/Nhn d liu vi client ss.Send() / s.Receive()Truyn/Nhn d liu vi client sClient.Send() / Client.Receive()ng kt niServer.Close()ng kt niClient.Close() Xy dng UD Client-Server vi Socket*
-
Ni dung chnh*
-
Mt s hm c bn trong lp CSocketCSocket (c h tr trong MFC) qun l vic truyn v nhn d liu thng qua socketTham kho trong MSDN: http://msdn.microsoft.com/en-US/library/65bbyctt%28v=VS.80%29.aspx *
-
Mt s hm c bn trong lp CSocketKhi to Socket
Trc khi s dng cc hm ca lp CSocket, chng ta phi gi hm ny khi to Windows Socket vi tham s lpwsaData gn bng NULL. *
BOOL AfxSocketInit( WSADATA* lpwsaData = NULL );
-
Mt s hm c bn trong lp CSocketTo socket
nSocketPort: port ca socket; nu bng 0 th port s c MFC chn ngu nhin. nSocketType l SOCK_STREAM (TCP) hay SOCK_DGRAM (UDP). lpszSocketAddress: a ch IP ca host dng socket. Nu dng NULL, socket s lng nghe hot ng ca client trn tt c cc card mng. Gi tr tr v: khc 0 nu thnh cng; ngc li th bng 0 v m li c th s c cho khi gi hm GetLastError. *
BOOL Create( UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, LPCTSTR lpszSocketAddress = NULL );
-
Mt s hm c bn trong lp CSocketLng nghe cc yu cu kt ni
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.Gi tr tr v: khc 0 thnh cng, bng 0 tht bi.
*
BOOL Listen( int nConnectionBacklog = 5 );
-
Mt s hm c bn trong lp CSocketChp nhn mt kt ni
rConnectedSocket: tham chiu nh danh socket ca kt ni c chp nhn. lpSockAddr tr n cu trc SOCKADDR nhn a ch IP ca socket kt ni n. 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. 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. *
virtual BOOL Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL );
-
Mt s hm c bn trong lp CSocketKt ni n server
lpszHostAddress: a ch IP ca Server. nHostPort: Port ca socket lng nghe kt ni trn Server. Gi tr tr v: khc 0 nu thnh cng; ngc li, tht bi = 0.
*
BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort );
-
Mt s hm c bn trong lp CSocketTruyn/nhn d liu
lpBuf: vng m cha d liu. nBuffLen: kch thc ca vng m tnh theo byte. nFlag: cch nhn/truyn d liu, s dng gi tr mc nh l 0. Gi tr tr v l s byte nhn/truyn c
*
virtual int Send/Receive( const void* lpBuf, int nBufLen, int nFlags = 0 );
-
Th d minh haBi ton 1: vit mt ng dng chat tun t gia Server Client (Server chat trc).
Xc nh 4 bc trc khi lp trnh:1. Xc nh kin trc mng: ?2. Giao thc s dng tng Transport: ?3. Cc port s dng Server v Client: Server - ? 4. Giao thc tng ng dng khi trao i d liu gia hai end-host: + server client server client + format thng ip truyn gia client v server:
*
-
Th d minh haXt kch bn trong bi ton 1
M hnh: 1 server 1 client
*
-
Th d minh ha*Bi ton 2: N clients s gi cho server 2 s t 0 10. Cc client lun phin nhau gi theo 2 lt. Server m s lng cc s Nguyn t c gi ln v thng bo kt qu cho tt c client.
Xc nh 4 bc trc khi lp trnh: ?Giao thc tng ng dng khi trao i d liu gia hai end-host: + N clients server N clients + format thng ip truyn gia client v server:
-
Th d minh haXt kch bn trong bi ton 2
M hnh: 1 server N clients
*
-
Ni dung chnh*
-
DemoCch to 1 projectCode demo Bi ton 1: Server v Client chat tun tCode demo Bi ton 2: N clients gi ln Server, Server tnh ton gi tr kt qu v cho cc clientsGii thch 1 s kch bn trong Xt kch bn ng k tn (nickname)Xt kch bn server pht sinh l bi gi cho clients*
-
Demo: cch to 1 project*
-
Demo: cch to 1 project*
-
Demo code chat 1S 1C*
Server (include afxsock.h)Client (include afxsock.h)CSocket server, s; //khai bo bin
AfxSocketInit(NULL); // kt Windows Socket
if (!server.Create(1234)) { // c portprintf(That bai roi nhe"); exit(); } // to socketserver.Listen(); // lng ngheserver.Accept(client) ; // chp nhn kt nido { printf("\nServer: "); gets(s_str); len = strlen(s_str); s.Send(s_str,len,0); len = s.Receive(r_str,100,0); // gn k t kt thc chui r_str[len] = 0; // hin th chui nhn cprintf("\nCleint: %s",r_str); }while(strcmp(r_str,"exit")&&strcmp(s_str,"exit")); s.Close(); server.Close(); CSocket client;
AfxSocketInit(NULL);
client.Create(); // khng c port
client.Connect(svrAddr,1234) ; // kt ni
do { len = client.Receive(r_str,100,0); r_str[len] = 0; printf("\n Server: %s",r_str); printf("\n Client: "); gets(s_str); client.Send(s_str,strlen(s_str),0); }while(strcmp(r_str,"exit")&&strcmp(s_str,"exit"));
client.Close();
LOGO
*
Company Logo
*