- Xiaomi Mi 11 Ultra - Circus Maximus
- Motorola Edge 40 neo - színre és formára
- Milyen okostelefont vegyek?
- Samsung Galaxy S21 Ultra - vákuumcsomagolás
- Indiában startolt a Poco X6 és X6 Pro
- Samsung Galaxy A54 - türelemjáték
- Fotók, videók mobillal
- Mobil flották
- Motorola Edge 50 Pro - több Moto-erő kéne bele
- Samsung Galaxy S24 - nos, Exynos
Hirdetés
-
Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
ph Az ASTRIA 600 ARGB ráadásul a hűtési teljesítmény szempontjából sem szégyenkezhet.
-
Dragon Ball: Sparking! Zero - Mester és tanítvány
gp Egyelőre még mindig nem kaptunk megjelenési dátumot a játékhoz.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
Ú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.'' A vicc az egészben az, hogy ez igaz is, csak ettől még nem fogod tudni, hogy hogyan...
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. 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). 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!
[Szerkesztve]