Bao Cao Do an Co CA Ro

Embed Size (px)

Citation preview

  • 8/13/2019 Bao Cao Do an Co CA Ro

    1/24

    TI: CCARO GVHD: MAI NGC CHU

    1

    LI MU

    Hin nay, mng Lan pht trin rt mnh ctrong trng hc, cc c quan t

    chc v ccc hgia nh. Chnh iu ko theo nhu cu gii tr trongmng Lan cngpht trin theo. Chnh v vy, mt chng trnh Game phc vcho nhu cu trn l rt cn thit.

    Ccaro l mt tr chi truyn thng vn c nhiu ngi a chung d cnhiu tr chi vi ha hp dn hn. Ccar rt n gin nhng li i hinhiu sthng minh v tnh ton nc i kho lo ngi chi. Bn phingh ra nhng phng n chin lc v bn sginh chin thng trn bn c!

    Yu cu ra:

    Yu cu t ra l xy dng chng trnh Chat hot ng trong mng Lan sdng Socket v Multithreading i hi cc chc nng nghip vsau:

    Chi ccaro onlineChi ccaro offline ( vi my)Chi ccaro ofline ( vi 1 ngi khc)Chchat, kt bn, tnh im, thng cp,

  • 8/13/2019 Bao Cao Do an Co CA Ro

    2/24

    TI: CCARO GVHD: MAI NGC CHU

    2

    NHN XT CA GIO VIN

    ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ............................................................................................................................................................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

    ..............................................................................................................................

  • 8/13/2019 Bao Cao Do an Co CA Ro

    3/24

    TI: CCARO GVHD: MAI NGC CHU

    3

    MC LCChng I: CC KHI NIM C BN ............................................................... 4

    1. Gii thiu vsocket ..................................................................................... 4

    1.1 Cc lp c bn ....................................................................................... 41.2 Sockethng kt ni CP ocket...................................................... 4

    1.3 KtniServer-Client viTCP/IP ......................................................... 5

    2. MultiThread ................................................................................................. 5

    Chng II:THIT KC DLIU ............................................................ 7

    1. Table DANHSACHTHANHVIEN ............................................................. 7

    2. Table FRIEND ............................................................................................. 7

    Chng III: THIT KCC THNH PHN XL .................................... 81. M hnh lung xl ng nhp: ................................................................. 8

    2. M hnh lung xl ng xut: .................................................................. 9

    3. M hnh lung xl gi tin nhn .............................................................. 10

    4. M hnh lung xl FriendList ................................................................ 11

    5. Xa mt Friend khi FriendList: ............................................................... 12

    6. Gii thut ccaro....................................................................................... 13

    Chng VI: THIT KGIAO DIN ............................................................ 16

    1. Bn server .................................................................................................. 16

    1.1 ng nhp ........................................................................................... 16

    1.2 au khi ng nhp ............................................................................... 16

    1.3 Thit lp thng tin user trn server ..................................................... 18

    2. Bn client ................................................................................................... 18

    2.1 ng k................................................................................................ 182.2 ng nhp ........................................................................................... 19

    2.3 au khi ng nhp ............................................................................... 19

    2.4 Khi vo chi online............................................................................. 20

    2.5 Danh sch bn online v bn b kt bn ........................................ 21

    2.6 Khung chat .......................................................................................... 21

    2.7 Khi chi offline (vi my) .................................................................. 22

  • 8/13/2019 Bao Cao Do an Co CA Ro

    4/24

    TI: CCARO GVHD: MAI NGC CHU

    4

    Chng I: CC KHI NIM C BN

    1. Gii thiu vsocketL mt giao din lp trnh ng dng PI : application program interfaces

    mng , l mt phng php thit lp kt ni truyn thng gia mt chngtrnh yu cu dch v( client) v mt chng trnh cung cp dch v(server)trn mng LAN, WAN hay Internet.

    Socket nm gia chng trnh ng dngvi tng vn chuyn. N cho php tachn giao thc sdng tng vn chuynl CP hay UDP cho chng trnh ngdng ca mnh.

    1.1Cc lp c bnClass Namespace Desciption

    IPAddress System.Net Cung cp a ch giao thc Internet

    IPEndPoint System.Net i din cho mt thit b u cuimng nh a ch IP v s cng.

    TcpListener System.Net.Sockets Lng nghe cho cc kt ni tmngli khch hng CP.

    Socket System.Net.Sockets hc hin cc giao din Berkeleysocket

    TcpClient System.Net.Sockets Cung cp cc kt ni khch hngvi cc dch v mng CP.

    NetworkStream System.Net.Sockets Cung cp cc dng c bn ca d

    liu truy cp mng.

    1.2c hng ni C cC 1 ng kt ni o gia hai tin trnhMt trong hai tin trnh phi i tin trnh kia yu cu kt ni.C th s dng lin lc theo m hnh clientserverrong m hnh Clienterver th erver lng nghe v chp nhn mt

    yu cu kt niCc gi tin chuyn i tun t

    http://msdn.microsoft.com/en-us/library/system.net.ipaddress.aspxhttp://msdn.microsoft.com/en-us/library/system.net.aspxhttp://msdn.microsoft.com/en-us/library/system.net.ipEndpoint.aspxhttp://msdn.microsoft.com/en-us/library/system.net.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspxhttp://msdn.microsoft.com/en-us/library/system.net.aspxhttp://msdn.microsoft.com/en-us/library/system.net.ipEndpoint.aspxhttp://msdn.microsoft.com/en-us/library/system.net.aspxhttp://msdn.microsoft.com/en-us/library/system.net.ipaddress.aspx
  • 8/13/2019 Bao Cao Do an Co CA Ro

    5/24

    TI: CCARO GVHD: MAI NGC CHU

    5

    1.3KniServer-Client viTCP/IP

    Server:o mt i tngSystem.Net.Sockets.TcpListener bt u lng

    nghe trn mt cng cc b.i v chp nhn kt ni tclient vi phng thc ccepocket.

    Phng thc ny tr v mt i tngSystem.Net.Sockets.Socket dng giv nhn d liu.

    hc hin giao tip vi client.ng Socket.

    hng thng quy trnh ny s c t trong mt vng lp lp li bc 2 chp nhn nhiu kt ni cng lc s dng hread hoc cc kt ni lnlt.

    Client:o mt i tngSystem.Net.Sockets.TcpClientKt ni n server vi a ch v port xc nh vi phng thc

    TcpClient.Connect()Ly lung stream giao tip bng phng thc

    TcpClient.GetStream().hc hin giao tip vi server.ng lung v socket.

    2. MultiThreadThread l mt chui lin tip nhng sthc thi (m lnh hay cu lnh) trong

    chng trnh ng dng). Trong mt chng trnh C#, dthy vic thc thic bt u bng phng thc main() v tip tc cho n khi kt thc hm

    http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspxhttp://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx
  • 8/13/2019 Bao Cao Do an Co CA Ro

    6/24

    TI: CCARO GVHD: MAI NGC CHU

    6

    main(). Cu trc ny rt hay cho nhng chng trnh c mt chui xc nhnhng nhim vlin tip, nhng thng th trong mt chng trnh ng cnhiu hn mt cng vic vo cng mt lc.

    C thcng hot ng trong mt khng gian a ch => Cng chia sti

    nguyn chung.Khai bo thread: using System;

    using System.Threading;

    To 1 thread :class Program

    {

    static void Main ()

    {

    Thread t = new Thread(WriteY);

    t.Start();

    }

    static void WriteY ()

    {

    while (true)

    Console.Write("T");

    }

    }

    Chi mt lung khc

    Bng vic sdng phng thc Join(); ta c thcho php chi mt lungkhc thc hin xong thu thp dliu chng hn - do chia nhcng vicm), th lung gi n mi tip tc c cng vic ca n

    Mt sphng thc cbn ca class Thread

  • 8/13/2019 Bao Cao Do an Co CA Ro

    7/24

    TI: CCARO GVHD: MAI NGC CHU

    7

    Chng II: THIT KC DLIU

    1. Table DANHSACHTHANHVIENChc nng: Lu thng tin vUser (qun l account, pass, tnh im,

    xp hang cho User)Danh sch cc thuc tnh:

    2. Table FRIENDDanh sch cc thuc tnh:

  • 8/13/2019 Bao Cao Do an Co CA Ro

    8/24

    TI: CCARO GVHD: MAI NGC CHU

    8

    Chng III: THIT KCC THNH PHN XL

    1. M hnh lung xl ng nhp:

    M tqui trnh xl:Khi mt User yu cu ng nhp h thng, Client s gi Username v

    Password cho Server. Server skim tra xem Username v Password c hp lhay khng. au , erver skim tra Username ny ng nhp cha. Nung nhp thnh cng, Server s ly danh sch cc Friend ang Offline vOnline ca User v gi cho User v cp nht li trng thi ng nhp ca User.ng thi cng gi thng bo n cc Users khc c Friend l User ny miOnline.

  • 8/13/2019 Bao Cao Do an Co CA Ro

    9/24

    TI: CCARO GVHD: MAI NGC CHU

    9

    2. M hnh lung xl ng xut:

    M tqui trnh xl:

    Khi mt User yu cu ng xut li hthng, Client shin thli mn hnhng nhp v ng thi gi thng bo ang xut n Server. Server s githng bo ng xut ti cc Users c Friend l User ny. Bn cnh , erverkim tra tt ccc Groups m User ny ang tham gia. erver sgi thng bohy n cc Group m User ny l ngi khi to v sgi thng bo ng

  • 8/13/2019 Bao Cao Do an Co CA Ro

    10/24

    TI: CCARO GVHD: MAI NGC CHU

    10

    xut n cc Group m User ny chtham gia vi t cch l thnh vin. Cuicng, Server scp nht li trng thi ng nhp ca User.

    3.

    M hnh lung xl gi tin nhn

    M tqui trnh xl:

    Khi ngi dng nhp tin nhn v nhn phm Enter (hoc button Send), Clientshin thtin nhn trn ab Chat ng thi gi tin nhn v tn ngi nhn lncho Server. Server s kim tra xem ngi nhn c phi ang Online haykhng. Nu ngi nhn ang Online, erver sgi tin nhn v tn ngi gi.

  • 8/13/2019 Bao Cao Do an Co CA Ro

    11/24

  • 8/13/2019 Bao Cao Do an Co CA Ro

    12/24

    TI: CCARO GVHD: MAI NGC CHU

    12

    5. Xa mt Friend khi FriendList:

    M tqui trnh xl:

    Khi ngi dng chn chc nng xa mt Friend vo FriendList, mn hnhthm FriendList sc mra. Ngi dng snhp tn ca Friend v sau Client s gi tn Friend ny ln cho erver. rc tin, Server s kim traFriend ny c tn ti hay khng. Tip theo, skim tra Friend ny cthm vo FriendList trc hay cha. Nu Friend ny c trong

    FriendList, Server sxa Friend ny ra khi FriendList ca ngi dng. Cui

  • 8/13/2019 Bao Cao Do an Co CA Ro

    13/24

    TI: CCARO GVHD: MAI NGC CHU

    13

    cng, Server sgi kt quca cng vic vcho Client. Da vo kt qunhnc, Client sthng bo cho ngi dng bit l vic Xa thnh cng hay tht

    bi (c hai nguyn nhn tht bi l Friend khng tn ti v Friend cha ctrong FriendList ng thi cp nht li mn hnh chnh.

    6. Gii thut ccaro

    Hnh: M tqu trnh xl trn bn c

    Code lun l:

    Xt hng ngang:

    private int Ngang(int iX,int iY)

    {

  • 8/13/2019 Bao Cao Do an Co CA Ro

    14/24

    TI: CCARO GVHD: MAI NGC CHU

    14

    int iChanNgang = 0;

    int iCountNgang = 0;

    NgangTrai(iX, iY, ref iCountNgang, ref iChanNgang);

    NgangPhai(iX, iY, ref iCountNgang, ref iChanNgang);if (iChanNgang == 2)

    return 0;

    else if (iCountNgang > 4)

    return 2;

    else if (iCountNgang == 4)

    return 1;

    return -1;

    }

    Xt hng ng:

    private int Dung(int iX, int iY)

    {

    int iCountDung = 0;

    int iChanDung = 0;

    DungTren(iX, iY, ref iCountDung, ref iChanDung);

    DungDuoi(iX, iY, ref iCountDung, ref iChanDung);

    if (iChanDung == 2)

    return 0;

    else if (iCountDung > 4)

    return 2;else if (iCountDung == 4)

    return 1;

    return -1;

    }

    Xt hng cho thun:

    private int CheoThuan(int iX, int iY)

    {

  • 8/13/2019 Bao Cao Do an Co CA Ro

    15/24

    TI: CCARO GVHD: MAI NGC CHU

    15

    int iCountCheoThuan = 0;

    int iChanCheoThuan = 0;

    CheoThuanTren(iX, iY, ref iCountCheoThuan, ref iChanCheoThuan);

    CheoThuanDuoi(iX, iY, ref iCountCheoThuan, refiChanCheoThuan);

    if (iChanCheoThuan == 2)

    return 0;

    else if (iCountCheoThuan > 4)

    return 2;

    else if (iCountCheoThuan == 4)

    return 1;

    return -1;

    }

    Xt hng cho nghich:

    private int CheoNghich(int iX, int iY)

    {

    int iCountCheoNghich = 0;int iChanCheoNghich = 0;

    CheoNghichTren(iX, iY, ref iCountCheoNghich, refiChanCheoNghich);

    CheoNghichDuoi(iX, iY, ref iCountCheoNghich, refiChanCheoNghich);

    if (iChanCheoNghich == 2)

    return 0;else if (iCountCheoNghich > 4)

    return 2;

    else if (iCountCheoNghich == 4)

    return 1;

    return -1;

    }

  • 8/13/2019 Bao Cao Do an Co CA Ro

    16/24

    TI: CCARO GVHD: MAI NGC CHU

    16

    Chng VI: THIT KGIAO DIN1. Bn server

    1.1ng nhp

    1.2au hi ng nhp

  • 8/13/2019 Bao Cao Do an Co CA Ro

    17/24

    TI: CCARO GVHD: MAI NGC CHU

    17

  • 8/13/2019 Bao Cao Do an Co CA Ro

    18/24

    TI: CCARO GVHD: MAI NGC CHU

    18

    1.3 Thit lp thng tin user trn server

    2. Bn client2.1ng

  • 8/13/2019 Bao Cao Do an Co CA Ro

    19/24

    TI: CCARO GVHD: MAI NGC CHU

    19

    2.2ng nhp

    2.3au hi ng nhp

  • 8/13/2019 Bao Cao Do an Co CA Ro

    20/24

    TI: CCARO GVHD: MAI NGC CHU

    20

    2.4Khi v chionline

  • 8/13/2019 Bao Cao Do an Co CA Ro

    21/24

    TI: CCARO GVHD: MAI NGC CHU

    21

    2.5Danh sch bn online v bn b t bn

    2.6Khung chat

  • 8/13/2019 Bao Cao Do an Co CA Ro

    22/24

    TI: CCARO GVHD: MAI NGC CHU

    22

    2.7Khi chi offline vi my)

  • 8/13/2019 Bao Cao Do an Co CA Ro

    23/24

    TI: CCARO GVHD: MAI NGC CHU

    23

  • 8/13/2019 Bao Cao Do an Co CA Ro

    24/24

    TI: CCARO GVHD: MAI NGC CHU

    24