JAVA - Socket - Zatvaranie

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
galen
Používateľ
Používateľ
Príspevky: 2237
Dátum registrácie: Št 01. Jún, 2006, 02:00
Bydlisko: Zilina

JAVA - Socket - Zatvaranie

Príspevok od používateľa galen »

Jednoducha otazka: JAK?!

Mam aplikaciu 3. strany, ktora robi socket spojenie, ale problem je v tom, ze jej vytuhne komunikacia, a otvori si nove socket spojenie, no stare nezavre.

Ja potrebujem v mojej aplikacii *nie, 3. strana sa nepripaja na mna, takze ja listujem aktivne socket spojenia, a podla nich pridem na to, ze vzniklo nove spojenie* zavriet vsetky spojenia nad danym portom *ano, povodne vzniknute nad danym portom, preforwardovane nad uplne iny port*

Otazka znie: Ako ?

PS: ano, robim to v JAVAe, ale primarne to pobezi pod WinXP, takze linuxacke commandy na killovanie mi nepomozu :(
lava, prava, lava, prava ...
Používateľov profilový obrázok
kami_sama
Používateľ
Používateľ
Príspevky: 362
Dátum registrácie: Po 05. Sep, 2005, 20:00
Bydlisko: Bratislava

Príspevok od používateľa kami_sama »

no ked to chces riesit cez javovske sockety, tak neviem, preco
ti nestaci metoda close ();?

resp. v com je problem? lebo neak to nevidim.... :?
Používateľov profilový obrázok
galen
Používateľ
Používateľ
Príspevky: 2237
Dátum registrácie: Št 01. Jún, 2006, 02:00
Bydlisko: Zilina

Príspevok od používateľa galen »

kami_sama napísal:no ked to chces riesit cez javovske sockety, tak neviem, preco
ti nestaci metoda close ();?

resp. v com je problem? lebo neak to nevidim.... :?
lebo ten socket nieje moj

kebyze je moj, tak ho nemam problem .close();
ale mam problem:
1) dostat handler na cudzi socket
2) a potom ho pripadne zavriet
lava, prava, lava, prava ...
Používateľov profilový obrázok
kami_sama
Používateľ
Používateľ
Príspevky: 362
Dátum registrácie: Po 05. Sep, 2005, 20:00
Bydlisko: Bratislava

Príspevok od používateľa kami_sama »

takze: tvoj program bezi na 2 kompoch a potrebujes handler
(v ramci tvojho programu) na druhej strane?

ked toto je situacia, tak preco si nenapises vlastny "protokol"? posles neaky UDP ramec, v com bude info pre druhu stranu (nieco ako TCP protokol). takto by si mohol aj zatvarat, aj operacie vykonat.
Používateľov profilový obrázok
galen
Používateľ
Používateľ
Príspevky: 2237
Dátum registrácie: Št 01. Jún, 2006, 02:00
Bydlisko: Zilina

Príspevok od používateľa galen »

nie ...
moj program bezi na 1 kompe, kde bezi i inyProgram, s ktorym komunikuje uplneInyProgram z druheho kompu

nemam ako pristupovat do aplikacii inyProgram ani uplneInyProgram

ja mam moznost fungovat na jedinom pocitaci, kde bezi inyProgram a musim zhodit existujuce socket spojenie medzi tymi 2ma pocitacmi

zatial ako schodne riesenie vyzera byt nahadzovanie firewallu nad konkretnym portom, a cakat az aktivne socket spojenie jednoducho spadne z dovodu timeOut... no narazil som na problem, ze win 2000 server nema urcite sluzby, ktore su na win 2003 servri, a tak hladam alternativne nastroje na blokovanie portov, ovladatelne z prikazoveho riadku ... a idealne na urovni freeware
lava, prava, lava, prava ...
Používateľov profilový obrázok
kami_sama
Používateľ
Používateľ
Príspevky: 362
Dátum registrácie: Po 05. Sep, 2005, 20:00
Bydlisko: Bratislava

Príspevok od používateľa kami_sama »

hmmm... tak podla mna tento problem nie je o programovani, lebo java ti vyhodi exception, ked chces otvorit uz otvoreny socket. a tiez nevidim sancu na handler-a...

iste sa da tu komunikaciu neako dokoncit. avsak tebe by stacilo killnut inyProgram, cize ten, ktory ti bezi na kompe, kde chces spustit tvoj kod.

neda sa to urobit tak, aby si zatvoril program a potom by si jednoducho vytvoril novy socket?

ked nie, tak viem si predstavit este inu moznost a to pouzivat kniznicu JPcap. je to javovska verzia winPcap-u. tam nemusis vytvarat sockety, staci nastavit sietovu kartu, ktoru chces pouzivat a mozes posielat aj zachytat hociake packety. je to celkom sranda. tiez mozes poslat packety pod inou MAC adresou, alebou aj IP (proste mozes zasahovat do hlavicky ramca).

existuju 2 verzie JPcap-u, ja som pouzival tuto.
Používateľov profilový obrázok
galen
Používateľ
Používateľ
Príspevky: 2237
Dátum registrácie: Št 01. Jún, 2006, 02:00
Bydlisko: Zilina

Príspevok od používateľa galen »

povodne riesenie bolo o killovani inehoProgramu, ale bolo to zakazane, nakolko ten program komunikuje aj s dalsimi vecami, a na dalsich portoch ... ktore musia bezat dalej, a nesmu len tak vypadnut ...
a ano, i tie sekundy, ktore zrovna nebezi, su problem, kedze data prichadzajuce po dalsich 4och portoch idu takmer vkuse ...

pozeral som, ze winy vedia zakazat komunikaciu voci akejkolvek IP nad konkretnym portom ...
co je v podstate idealny stav, kedze docasne zakazem komunikaciu, existujuci socket spadne ... a povolim ... nahodi sa znova ...

uvazujem nad emulaciou tej sietovky, jak si naznacil ... ale to mi v mysli prinasa nespocet problemov ... pravdu napisat, nechce sa mi do toho...

nicto ... momentalne je to posunute do uzadia, hadam sa k tomu este dostanem
lava, prava, lava, prava ...
Používateľov profilový obrázok
kami_sama
Používateľ
Používateľ
Príspevky: 362
Dátum registrácie: Po 05. Sep, 2005, 20:00
Bydlisko: Bratislava

Príspevok od používateľa kami_sama »

jj, problem je s tym dost. avsak ked sa ti to podari rozbehnut, ide celkom OK. aj ked mi sem-tam hodil modru obrazovku a potom reset.

najlepsie je debugovat program (myslim pri pouziti JPcap-u). vyhodi chybu, avsak miesto a dovod musis najst ty - aspon v eclipse to tak bolo. ale dalo sa (debugovat assembler je stale este nieco horsie...=:D ).

Návrat na "Programovanie"