Hello!
Azt szeretném kérdezni, hogy hogyan tudnék Sockettel kapcsolódni egy neten lévő Servlethez? Mindig "unknownHostException" hibát kapok, ha egy URL-t írok be...
Valaki segítsen!
Azt szeretném kérdezni, hogy hogyan tudnék Sockettel kapcsolódni egy neten lévő Servlethez? Mindig "unknownHostException" hibát kapok, ha egy URL-t írok be...
Valaki segítsen!
Page
viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
27 Comments
Karnok Dávid
Unknown User (gericop)
Unknown User (gericop)
Karnok Dávid
Unknown User (gericop)
Auth Gábor
A Socket nem http protokoll stack! A Socket-nek adni kell egy IP címet (vagy hostnevet), egy portot és neked kell levezényelni a teljes kommunikációt. Például így: Próbáld ilyenféleképp.
Unknown User (gericop)
Ez alapján dolgoztam: http://codefasga.com/tutorials.php?id=2
Ez lezárja a kapcsolatot... Próbálkoztam mindennel, de sehogy sem akarja megtartani.
Karnok Dávid
Unknown User (gericop)
Auth Gábor
Akkor fog menni ez a Socket jellegű kapcsolattartás, ha a szerver oldal is nyit egy socket-et, és arra a portra kapcsolódsz. Kérdés, hogy ezt engedi-e az adott szerver tűzfala...
Felmerül a kérdés, hogy mire kell?
Auth Gábor
Karnok Dávid
Irsz egy szervletet, ami egy port paramétert vár vagy ad vissza eredményként, amin elindít egy új ServerSocket alapú TCP szervert, és a kliens oldalon kezdeményezett szimpla URLConnection segítségével lehet beizzítani (leállítani). Így a visszakapott portszámot fel tudod használni a kliens oldalon egy Socket nyitásához.
Unknown User (gericop)
Unknown User (gericop)
Karnok Dávid
Auth Gábor
Csodálkoznék, ha a myjavaserver.com szerveren csak úgy engednének portot nyitni. Én legalábbis tiltom a befelé érkező SYN csomagokat azokra a portokra, amelyeken nem figyel felügyelt szolgáltatás. A szerver természetesen kezdeményezhet kifelé kapcsolatot, a másik oldal pedig ekkor már ACK-ot küld, ami átmegy a tűzfalon.
Mire kell, amit nem tudsz megoldani HTTP protokollon? Gondolom arra, hogy a kliens figyel, a szerver meg küld üzenetet valamilyen esemény bekövetkeztekor. Ezt meg tudod csinálni HTTP-n is, egyszerűen a kliens felcsatlakozik, a szerver pedig csak akkor ad választ, ha az esemény bekövetkezik. Az esemény lekezelése után a kliens újra felkapcsolódik a szerverre... Ez a módszer nem jó?
Karnok Dávid
A myjavaserver.com az csak egy placeholder, vagy a tényleges oldal? Attól függ, ki az admin ott. A felcsatlakozva maradás nem túl jó ötlet, mert a HTTP szabványban 30s van megadva timeoutra alapból. Habár a HTTP magában stateless, de a szerver oldali session (+session cookie) pont lehetőséget ad a statefull viselkedésre.
Unknown User (gericop)
Auth Gábor
Karnok Dávid
Unknown User (gericop)
Auth Gábor
Én ilyen szabványról nem tudok, hogy konkrét időket írnának elő...
Auth Gábor
Unknown User (gericop)
Unknown User (gericop)
Auth Gábor
Kevésbé terhelő, ha a kliens 1-2-5 másodpercenként újrakérdezi a szervert.
tvik
Ahol:
Ez csak egy vázlat, csomó minden hiányzik belőle, pl. a hibakezelés is.