Server, Client. Client-Server Client numPlayers Id ServerMessage ClientMessage Server numPlayers ClientMessages[] ServerMessage Ha a kliens ugyanazt az.

Slides:



Advertisements
Hasonló előadás
4. alkalom – Hálózat Kezelés
Advertisements

A hálózat működése 1. A DHCP és az APIPA
HÁLÓZAT SOAP Hagyományos WCF/ASMX webszervizek.
Programozás III HÁLÓZAT.
Virtuális méréstechnika Hálózati kommunikáció 1 Mingesz Róbert V
A LabVIEW használata az oktatásban
SB Eszter SB Application Engine Peter Verhás 2002 április 9.
Objective- C Bereczki Gréta Tamara
9. előadás (2005. április 26.) Parancssor argumentum kezelés példák (K&R) Fordítóprogramok A C előfordító 1.
8. előadás (2005. április 19.) Pozicionálás fájlban (folyt.) I/O mechanizmus váltás Hibakezelő függvények Változók tárolási osztályai Parancssor-argumentumok.
HTML űrlapok kezelése és feldolgozása PHP segítségével
Socket programozás Példák
Dinamikus tömbök.
Sztringek.
Programozás Alapjai (2008)
10. előadás (2004. április 20.) A C előfordító (folytatás) Néhány hasznos compiler opció Egy tanulságos könyvtári függvény Változó hosszúságú argumentum.
11. előadás (2005. május 10.) A make segédprogram Alacsony szintű műveletek és bitmezők Fájl, katalógus rendszer hívások 1.
6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1.
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
Virtuális méréstechnika MA-DAQ műszer vezérlése 1 Mingesz Róbert V
Borland C/C++ mintapéldák
Borland C/C++ mintapéldák fájlokra. 1. példa Írjon olyan programot,amely megnyit egy hw.txt fájlt és írja bele a Hello világ szöveget. Ez után zárja le.
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
Programozás I. Horváth Ernő 1. Elérhetőségek Bauer Péter Horváth Ernő Tanszéki honlap
WEB Technológiák A HTML és a CGI ME Általános Informatikai Tsz. dr. Kovács László.
Hálózatkezelés, java.net Elek Tibor
OE-NIK HP Haladó Programozás WCF kivételkezelés. OE-NIK HP Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése.
Számítógépes grafika OpenGL 1. gyakorlat.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
PVM programok írása. Hasznos információk
C++ alapok, harmadik óra
Számítógépes Hálózatok
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Hálózati Bombermen Belicza András Konzulens: Rajacsics Tamás BME-AAIT.
Formanyomtatványok létrehozása Dreamweaverrel E-business 6. előadás.
Klasszikus Programozás a FoxPro-ban
Mozgás/hangérzékelés mobitelefonokon MobSensor Ekler Péter Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék.
1. Gyakorlat - Alapok 1. Írjon konzolprogramot, amely kiírja a “Hello ELTE” üzenetet! Használja a System.out.println() -t! 2. Írjon konzolprogramot, amely.
Széchenyi Isván Egyetem Számítógépes hálózatok II 1 Számítógépes Hálózatok II Széchenyi István Egyetem.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
1 Verseny 2000 gyakorlat ASP. 2 Gyakorlat Web létrehozása: Frontpage 2000 New Web:
Java programozási nyelv Filekezelés
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
A gyakorlatok munkakörnyezete
Web fejlesztés V. Illés Zoltán ELTE Informatikai Kar
Miért is jók a rétegek?  Ha alkalmazást készítünk, nem akarunk IP csomagok küldésével bajlódni Ethernet keretekkel foglalkozni Implementálni megbízható.
Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.
Logikai programozás 8.. KIINDULÓ PÉLDÁK
Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán.
3 4 5 Mailbox szerepkör Mailbox szerepkör Client Access szerepkör Client Access szerepkör Hub Transport szerepkör Hub Transport szerepkör Edge Transport.
Illés Zoltán ELTE Informatikai Kar
Mérés és adatgyűjtés laboratóriumi gyakorlat Hálózati kommunikáció 1 Makan Gergely, Mingesz Róbert, Nagy Tamás V
© Tóth Ákos, Óbudai Egyetem, 2010
Java web programozás 5..
Spring 2000CS 4611 Protokoll Implementáció elelmei Vázlat Szolgáltatási Interfész Folyamat Modell Közös Szubrutinok Példa Protokoll.
Desktop virtualizáció Microsoft VDI használatával Háló Gyula.
Számítógépes Hálózatok 9. gyakorlat. Gyakorlatok Nov 18,20 - Socket Nov 25,27 - Socket Dec 2,4 - ZH Dec 9,11 - pótZH Számítógépes hálózatok GY2 Gombos.
Grafikus szoftver Szirmay-Kalos László. Interaktív programok felépítése input csővezeték output csővezeték.
Óbudai Egyetem Neumann János Informatikai Kar.NET Gadgeteer – Hálózati programozás.
Hálózatos programok készítése
Logikai programozás 10..
Webszervizek (JAX-WS, és JAX-RS) bemutatása
Számítógépes Hálózatok
Multiplayer böngészőben
Hálózatkezelés Java-ban
Számítógépes Hálózatok
Könyvtári függvények I. Input / output kezelés függvényei
Informatikai gyakorlatok 11. évfolyam
Függvénysablonok használata
Előadás másolata:

Server, Client

Client-Server Client numPlayers Id ServerMessage ClientMessage Server numPlayers ClientMessages[] ServerMessage Ha a kliens ugyanazt az információt küldi a servernek,mint a server a kliensnek a kliens üzenet része is lehet a server üzenetnek

Kliens inicializáció Szerverhez csatlakozás Játékosszám lekérdezése Játékosok karaktereinek inicializálása (servertől kapott info alapján) Fő hurok indítása

Szerver inicializáció Játékosszám bekérése Kliensek csatlakozásának bevárása Kezdeti játékos adatok elküldése a klienseknek (minden játékosról) Fő hurok indítása

Kliens fő hurok Beviteli eszköz beolvasás, kontroll (pl. move() ) Kliens üzenet elküldése ( player.data) Szerver üzenet feldolgozása (pl. finalizeMove()) minden játékos karakterére Kamera frissítés Megjegyzés: az eltelt időt lehet a szervertől is kérdezni, így teljes lesz a szinkronizáció

Szerver fő hurok Kliens üzenetek bevárása Parancsok felül bírálata (pl. ütközés detektálás), egyéb számítások (pl. lövés találat) Új adatok visszaküldése a klienseknek (minden játékosról)

Példa kódok… próbálkozzunk!

Kliens/Server adatok bekérése char* serverName = g_serverName; for(int a = 0; a < argc; a++) { if(strcmp(argv[a], "-s") == 0) serverName = argv[a + 1]; … } for(int a = 0; a < argc; a++) { if(strcmp(argv[a], "-clientcount") == 0) { sscanf(argv[a + 1], "%i", &GlobalParams::numHumanPlayers); if(GlobalParams::numHumanPlayers > 4) GlobalParams::numHumanPlayers = 4; }

CWinTcpSocket serverSocket; printf("Server started\n"); if(!serverSocket.Create()) printf("Unable to create socet\n"); if(!serverSocket.Bind(GlobalParams::port)) printf("Unable to bind port\n"); if(!serverSocket.Listen()) printf("Unable to listen\n"); CWinTcpSocket* clientSockets = new CWinTcpSocket[GlobalParams::numHumanPlayers]; for(int i = 0; i < GlobalParams::numHumanPlayers; i++) { while(!serverSocket.Accept(&clientSockets[i])); printf("Client%i connected\n", i); int res = clientSockets[i].Send((char*)&i, sizeof(int)); } //send start signal printf("Starting game...\n"); for(int i = 0; i < GlobalParams::numHumanPlayers; i++) clientSockets[i].Send(" ", 1); Server init

Server hurok for(int i = 0; i < GlobalParams::numHumanPlayers; i++) clientSockets[i].Recv(&SM.playerDatas[i], sizeof(PlayerData)); for(int i = 0; i < GlobalParams::numHumanPlayers; i++) clientSockets[i].Send(&SM, sizeof(ServerMessage));

CWinTcpSocket serverSocket; if(!serverSocket.Create()) printf("unable to create socet\n"); bool connectOK; connectOK = serverSocket.Connect(serverName, GlobalParams::port); if(connectOK) { printf("Connected to server\n"); serverSocket.Recv(&clientID, 4); printf("ClientID: %i\n", clientID); printf("Waiting server to start game...\n"); char blankMessage; serverSocket.Recv(&blankMessage, 1); printf("Game started...\n\n"); int recieved = serverSocket.Recv(&SM, sizeof(ServerMessage)); int messagesize = sizeof(ServerMessage); } Kliens init

while(!SM.playerDatas[clientID].shutDown) { serverSocket.Send(&SM.playerDatas[clientID], sizeof(PlayerData)); serverSocket.Recv(&SM, sizeof(ServerMessage)); } Kliens hurok