» »

[Java] pošiljanje slik prek porta

[Java] pošiljanje slik prek porta

xlarge ::

Zdravo!

Torej moj program vzpostavi zaenkrat povezavo prek porta in tu vmes je tudi že vzpostavljena komunikacija med dvema programoma.

Moral bi pošiljati podatke v obliki teksta in slike.
Pri tekstu je uporabljen BufferedReader, tak da ni problem.
Imam pa par vprašanj. Prvič, ali je možno, da sta dva različna "socketa" na istem portu??
(sicer mi ni javilo napake pri prevajanju, a za zagon programa rabim še prenos slik, katerega tud ne znam ustvarit:8) ).

in drugič. Za prenos slik bi uporabil BufferedInputStream in BufferedOutPutStream (ravno na ta drugem socketu...). Problem je v tem, da ne bi vedel, kako sliko "spravit" v BufferedOutputStream in Nato na drugemkoncu spet prebrati sliko iz BufferedInputStream-a
(natančneje iz in v BufferedImage).Saj povezava je vspostavljena , sam delo z datotekami, in vhodno izhodnimi podatki mi ne gre od rok...

Če pa je boljši način za pošiljanje slik , bi bil pa tak najbolj vesel:P .

thanks za odgovore:)
  • spremenilo: snow ()

BigWhale ::

Ok, saj bi ti mogoce se kdo pomagal ampak, kot dezurni prognostik in jasnovidec, ti moram povedati, da sem vceraj zvecer pozabil kristalno kroglo zunaj na dezju, danes zjutraj sem jo nasel pred hiso popolnoma blatno in prekrito z mokrim listjem. Sem jo moral odnesti v cistilnico kristalnih krogel in drugih kristalnih izdelkov namenjenih jasnovidnosti.

Zatorej, NE morem vedete v cem programiras na kaksni platformi in kako vzpostavljas povezavo med dvema racunalnikoma.

Ce bi nam vsaj tokrat, naredil izjemo in te podatke povedal ali pa mogoce, ce snames tinfoil hat, pa jih bo dezurni mindreader kar sam prebral.

Hvala.

snow ::

Kot je že BigWhale zgoraj 'namignil' : PREBERI ME: označevanje topicov v oddelku programiranje
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

xlarge ::

Se izrecno opravičujem, malo se mi je mudilo in sem čisto pozabil omeniti pomembne podatke...

Gre za Javo 1,5 standard edition,
povezava se vzpostavi enostavno prek socketov, ...
Ka zlata ribica, rabiš še več podatkov??>:D

DMouse ::

Array intov dobiš s classom PixelGrabber:
PixelGrabber pg = new PixelGrabber(img, 0, 0, width, height, tmpArray, 0, width);

Tak array lohk pošlješ preko katerega koli streama, na sprejemni strani pa spet zgradiš array. Iz tega arraya nardiš image s funkcijo java.awt.Component.createImage:
Image img = createImage(new MemoryImageSource(width, height, pix, 0, width));

Hope that helps.

LP

xlarge ::

Hvala ti za odgovor, sem poskušal, a mi nekaj ni uspevalo (verjetno sem še preveč neizkušen:8) ).
Sem pa poskusil tako, da sem ustvaril nov razred , ki vsebuje BufferedImage in implementira serializable. Tega sem nato poslal preko ObjectOutputStream-a.
Problem je pa zdaj v tem, da sem nekje zabluzil... Ko poskušam zagnati dva primerka istega programa, se mi sicer vzpostavi povezava (ko zapreš en program, se tudi drugi zaključi in se izpiše connection reset, tak da povezava mora bit), a se mi ne odpre nič, niti okno.
Sumim, da sem nekaj pri povezavah zabluzil:

ServerSocket ss = new ServerSocket( Integer.parseInt(arg[0] ));
         System.out.println("Pripravljen za sprejem povezave!");
         
         Socket s = ss.accept();
         Socket s2 = ss.accept();


isto pri odjemalcu :

Socket s = new Socket(arg[0], Integer.parseInt( arg[1] ));
 Socket s2 = new Socket(arg[0], Integer.parseInt( arg[1] ));


pri čemer je arg[0] naslov, v tem primeru localhost, args[1] pa številka porta (v prvem primeru je to args[0])

Torej, po s sem mislil pošiljati tekst (BufferedReader,BufferedWriter)
po s2 pa Sliko(ObjectOutputStream)

Ko še nisem imel s2, je delalo (sam za tekst je torej delalo).

Torej, a kdo ve, kje sem zabluzil??


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JAVA neujemanje tipov

Oddelek: Programiranje
151979 (1612) l0g1t3ch
»

[JAVA] zaustavitev niti (threadov)

Oddelek: Programiranje
223162 (3162) morbo
»

[Delphi] client server

Oddelek: Programiranje
61256 (1115) jvolk
»

[JAVA]Branje podatkov tipa int, double

Oddelek: Programiranje
123394 (3292) BaRtMaN
»

Kako pošiljanje datotek v JAVI.

Oddelek: Programiranje
141827 (1698) kopernik

Več podobnih tem