Keresés

Hirdetés

Új hozzászólás Aktív témák

  • DigitXT

    félisten

    válasz concret_hp #723 üzenetére

    Hát izé: jók a kérdések, legelőször nekem is épp ilyesmik kavarogtak, a ''nagyok'' meg csak kb. az ilyen dumát nyomták: ''csinálni kell egy socketet, aztán úgy írod/olvasod, mintha fájl lenne, nem nagy ügy.'':U A vicc az egészben az, hogy ez igaz is, csak ettől még nem fogod tudni, hogy hogyan...:D

    Nah. Írok vmit röviden.:)
    Jó hír: maga a ''hálózatprogramozás'' mint olyan, tényleg nem vmi bonyolult.

    A félév során olyan hálózatos alkalmazást kell írni C-ben/C++-ban, ami az ural2-n fut! Tehát nem ''a nagyi debianos gépén'', meg nem ''wine alatt'', meg nem ''tegnap még működött otthon'': a bemutatáson, az ural2-n kell futnia.:D Ebből mindjárt következik, hogy a dolog egy kicsit mókás lesz fejlesztés szempontjából, mert ugye te fogod írni mind a szervert és a klienst, sőt, te fogod tesztelni is, adott esetben 3-4 putty ablakkal, és az egész hálózatosdi, ami amúgy képes lenne keresztülszelni az egész Internetet (jó, az UDP nem biztos;]) az ural2-n belül fog loopbackelődni.:)) Az imént kulcsmomentumot rejtettem a szövegbe: igen, beputtyolhatsz többször is az ural2-re, és voilá, máris tudsz futtatni egyszerre több dolgot, és egyszerre figyelni azok kimenetét. (Lehet, hogy lehet ezt egyszerűbben is, de emléxem, anno ez is alap kérdés volt.)
    Nah2: ez már nem is olyan rövid.
    Innentől ajánlanám: szglab5 tutorial [link] a gyakvezérem tollából, valamint a következő függvényeknek való utánaolvasás:
    szerverhez:
    socket, bind, listen, accept, recv, send, select
    klienshez:
    socket, connect, send, recv, close

    UDP esetén amúgy megspórolhatsz egy csomó adminisztrációt (tavaly ezt a koncepciót követtem - volna), elég egy sendto, meg egy recvfrom, viszont amit megnyersz az egyszerűséggel, elveszted a hibakezeléssel, uis senki nem garantálja, hogy az elküldött csomagod valóban megérkezik-e, tehát manuálisan kell nyugtázni, stb. Ennek ellenére, ha korrekten megcsinálod, el fogják fogadni (nekem tök rendben is volt a DOK1, szóval a koncepció jó volt, csak hát egy programsort nem írtam belőle:O). Előnye még, hogy van értelme csomagról beszélni, TCP-nél meg bájtfolyam van, és marhára nem tudod szabályozni, hogy milyen tagolásban fog átmenni - azaz egyben fogadja-e a túloldal az egyben küldött üzeneted, vagy több darabban -, szóval vmi protokollt kell kidolgozni, hogy hogyan rakd össze az egybetartozó infókat! A tavalyi P2P proggiban pl. *-ot raktunk elválasztójelnek a fájlnevek közé, ami nagyjából be is vált: szétválasztás easy, azonban az összeillesztésnél pufferelni kellett, ha nem jött csillag, és... Szóval azzal is lehet szívni. Én most tuti a másik módszert választom, azaz először megmondom (fix számú bájton), hogy mennyi adatot fogok elküldeni, így a túloldal tudni fogja pontosan, hogy mennyit kell kiolvasnia: amíg meg nem jött, szépen puffereli!:R

    [Szerkesztve]

Új hozzászólás Aktív témák