Számítógép-hálózatok: 4. Labor. TCP kliens. A gyakorlat célja:



Hasonló dokumentumok
TCP szerver. TCP szerver alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása kisérleti úton

UDP idő szerver. UDP protokollal kapcsolatos ismeretek elmélyítése. Egy UPP protokollt használó időszerver megvalósítása

Bevezetés a SOCKET programozásba UDP kliens

SOCKET használata UDP kliens

Hálózati architektúrák laborgyakorlat

Dr. Varga Imre. Socket-programozás. C nyelven

Dr. Varga Imre Debreceni Egyetem, Informatikai Kar. Socket-programozás. C nyelven, Linux alatt

Számítógépes Hálózatok. 5. gyakorlat

Számítógépes Hálózatok. 9. gyakorlat

Socket programozás Példák

Számítógépes hálózatok I.

TCP szerver készítése

Számítógépes Hálózatok GY 6.hét

Számítógépes hálózatok

Számítógépes hálózatok

Hálózati architektúrák laborgyakorlat

Számítógépes Hálózatok GY 3-4.hét

Socketek programozása

Programozás I gyakorlat. 10. Stringek, mutatók

Beej útmutatója a hálózati programozáshoz

Konkurens TCP Szerver

Számítógépes Hálózatok GY 7.hét

Számítógépes Hálózatok. 3. gyakorlat

FTP: Elkülönített kontroll- és adatkapcsolat. FTP: File Transfer Protocol

Számítógép labor V. Egyszer Web szerver. Dokumentáció. Készítette: Ács Gergely (K4C03M)

Számítógépes Hálózatok. 3. gyakorlat

Számítógépes Hálózatok. 4. gyakorlat

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

URL-LEL ADOTT OBJEKTUM LETÖLTÉSE (1) URL-LEL ADOTT OBJEKTUM LETÖLTÉSE

Számítógépes Hálózatok GY 4.hét

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

Kommunikáció. 3. előadás

Számítógépes Hálózatok. 7. gyakorlat

Gyorstalpaló hálózatprogramozás C nyelven UNIX. környezetben

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Adatátviteli rendszerek Mobil IP. Dr. habil Wührl Tibor Óbudai Egyetem, KVK Híradástechnika Intézet

Az adatszolgáltatási rendszer kliens felülete

Számítógépes Hálózatok 2012

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

C programozási nyelv Pointerek, tömbök, pointer aritmetika

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

Kommunikáció - Wi-Fi, Mobil internet - Bluetooth - GSM / GPRS és SMS - NFC

Hálózatos adatbázis-kapcsolódási problémák és azok javítása

Programozás C++ -ban

Fábián Zoltán Hálózatok elmélet

Kommunikáció Androidon Mobilinternet Wifi

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

UNIX: folyamatok kommunikációja

Modla Ferenc augusztus Port szkennelés

7/8. gyakorlat Karaktertömbök és sztringkezelés

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Technikai tudnivalók a Saxo Trader Letöltéséhez tűzfalon vagy proxy szerveren keresztül

Számítógépes Hálózatok ősz 2006

Számítógépes hálózatok

Részletes tantárgyprogram és követelményrendszer

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

Számítógépes hálózatok

Számítógépes Hálózatok GY 8.hét

3. Osztályok II. Programozás II

RPC Remote Procedure Call Távoli eljárás hívás

Programozas 1. Strukturak, mutatok

SzIP kompatibilis sávszélesség mérések

1. Bevezető. 2. IP cím és szolgáltatások felderítése

C string műveletek (string.h alkalmazása)

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Programozás alapjai 9.Gy: Struktúra 2.

Programozás 6. Dr. Iványi Péter

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Hálózati Architektúrák és Protokollok GI BSc. 10. laborgyakorlat

A webhelyhez kötődő szoftverek architektúrája

Vezérlési szerkezetek

5. gyakorlat. Konstansok Tömbök Stringek

Tájékoztató az 1.10-es labor használatához

Programozás alapjai 8.Gy: Program struktúra

Programozás 5. Dr. Iványi Péter

Információ és kommunikáció

Karakter- és sztringkezelő függvények, matematikai függvények

A WINETTOU Távközlési Szolgáltató Korlátolt Felelısségő Társaság. Internet szolgáltatásra vonatkozó Általános Szerzıdéses Feltételek

Programozás II. 2. Dr. Iványi Péter

BEÁGYAZOTT RENDSZEREK TERVEZÉSE UDP csomag küldése és fogadása beágyazott rendszerrel példa

Fábián Zoltán Hálózatok elmélet

UNIX folyamatok kommunikációja

Járműfedélzeti rendszerek II. 3. előadás Dr. Bécsi Tamás

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Számítógépes Hálózatok GY 3.hét

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

7. fejezet: Mutatók és tömbök

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

Bevezető. PoC kit felépítése. NX appliance. SPAN-Proxy

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.2 TL280 (R) v.4.x modulokhoz

ELTE, IK, Információs Rendszerek Tanszék

Láncolt lista. az itt adott nevet csak a struct deklaráción belül használjuk

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Windows hálózatok. IP cím. Hálózati kapcsolatok nyomonkövetése. < Windows

TCP/IP szállítási réteg ( socket programozási interfész )

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. Kocsis Gergely, Supák Zoltán

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Átírás:

TCP kliens A gyakorlat célja: TCP kliens alkalmazás írásának az elsajátítása TCP protokoll tulajdonságainak a tanulmányozása Elméleti bevezető: TCP tulajdonságai: A TCP az UDP-vel ellentétben egy összeköttés alapú (STREAMING) protokoll. Ahoz, hogy adatot tudjak küldeni egy másik alkalmazásnak (komunikációs végpontnak - socketnek) kapcsolatott kell kiépítsek valamint, ha befejeztem a kommunikációt ezt a kapcsolatott bontani kell a kapcsolatot. A TCP-nek emelett még más szolgáltatásai is vannak ilyen például a megbizható adatátvitel. A megbizható azt jelenti, hogy az adatot vagy sikeresen kézbesítve van a cél gépnek vagy egy hibaüzenetet kapok. Viszont a TCP nem biztosítja az üzenet határokat, hanem adatfolyammal dolgozik. TCP kilens alkalmazás:

Amint a fenti ábrából is kiderül az UDP klienshez képest a TCP kliens egyedül a kapcsolódást biztosító Connect függvény hozzáadásával bővül. int connect( in SOCKET s, in const struct sockaddr *name, in int namelen ); s [in] name [in] namelen [in] Egy socket azonósító, amely egy kapcsolat nélküli socketet azonósít. Egy a sockaddr struktúra típusú mutató, amely tartalmazza a cél szerver ip címét és a portotját. A sockaddr struktúra mérete. A Connect függvény sikeres kapcsolódás esetén 0-t térít vissza. Hiba estén SOCKET_ERROR-t térít vissza, amelynek a kódját a WSAGetLastError- függvény meghívásával kaphatjuk meg. Feladat: 1. Valósítsatok meg egy TCP alapú visszhang klienst. Példaprogram: #include <stdio.h> #include <string.h> #include "winsock2.h" #pragma comment(lib, "ws2_32.lib") void main() // visszatéritési érték tárolásához int iresult; // Inicializálja a Winsock könyvtárat WSADATA wsadata; iresult = WSAStartup(MAKEWORD(2,2), &wsadata);

if (iresult!= NO_ERROR) printf("hiba a WSAStartup() nál\n"); // Létrehozunk egy SOCKET-et amelyik a szerverhez kapcsolódik SOCKET KlientSocket; //https://msdn.microsoft.com/enus/library/windows/desktop/ms737625%28v=vs.85%29.aspx KlientSocket = socket(af_inet,, ); if (KlientSocket == INVALID_SOCKET) printf("hiba a socket inicializálásánál a következő hibakóddal: %ld\n", // A sockaddr_in struktúra meghatározza a cím családot, // Az IP címet és a portot amihez kapcslódnia kell int Port=; char IP[10]="..."; sockaddr_in ServerAddr; int AddrLen=sizeof(ServerAddr); ServerAddr.sin_family = AF_INET; ServerAddr.sin_addr.s_addr = inet_addr( IP ); ServerAddr.sin_port = htons( Port ); // A kapcsolat felépítése. if ( connect(, (SOCKADDR*) &, ) == SOCKET_ERROR) printf( "Hiba a kapcsolódásnál a következő hibakóddal: %ld\n", WSAGetLastError() ); // Küldés itt az idő szerver esetében nem kell /* const int SendBufLen=1024; char SendBuf[SendBufLen]; int DataLen; strcpy_s(sendbuf,"bármi lehet ez"); DataLen=strlen(SendBuf)+1; iresult = send( KlientSocket, SendBuf, DataLen, 0 ); if (iresult == SOCKET_ERROR)

*/ printf("hiba a küldésnél a következő hibakóddal: %d\n", closesocket(klientsocket); // WSACleanup befejezi a Windows Sockets működését minden szálban!!!! //itt le kell elenőrizni hogy elment-e az összes adat -------------------------------- // az idő fogadása const int RecBufLen=1024; char RecBuf[RecBufLen]; iresult = recv( KlientSocket, RecBuf, RecBufLen-1, 0 ); //Ha hiba történt a fogadásnál if (iresult == SOCKET_ERROR) printf("hiba a fogadásnál a következő hibakóddal: %d\n", closesocket(klientsocket); //ha lezátuk valhol a socketet if (iresult == 0) //kiiratjuk az eredményt RecBuf[iResult]='\0'; printf("%s \n",recbuf); //Kapcsolat bontása iresult = shutdown(klientsocket, SD_SEND); //vagy lehet használni a //iresult = closesocket(klientsocket); //minden befejezödött felszabadítom a Kérdések: 1. Mi a különbség a send és a sendto valamint a recv és recvfrom között? 2. Az alkalmazás kapcsolatában milyen állapotokat tudsz meghatározni Netstattal 3. Mit csinál a shutdown függvény?

Könyvészet: [1]. A. Tanenbaum : Számítógéphálózatok. Bp., Panem Könyvkiad ó, 1999. [2]. http://msdn.microsoft.com/en-us/library/ms741416(vs.85).aspx