/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
sende et billede ?
Fra : Michael Hvalsoee Bri~


Dato : 27-03-02 13:36

hvordan sender jeg et billede ?(multi- eller uni- cast ). Jeg skal lave
billede om til bytes ikke ? Hvordan laver jeg et JPEG billede om til
bytes (eller sektioner af bytes som jeg kan sende i nogle forskellige
packets)

Alt hjælp eller links til eksempler vil blive modtaget med kyshånd

Michael


 
 
Kim Schulz (27-03-2002)
Kommentar
Fra : Kim Schulz


Dato : 27-03-02 13:45

On Wed, 27 Mar 2002 13:36:29 +0100
Michael Hvalsoee Brinkloev <c991094@student.dtu.dk> wrote:
> hvordan sender jeg et billede ?(multi- eller uni- cast ). Jeg skal
> lave billede om til bytes ikke ? Hvordan laver jeg et JPEG billede om
> til bytes (eller sektioner af bytes som jeg kan sende i nogle
> forskellige packets)
>
> Alt hjælp eller links til eksempler vil blive modtaget med kyshånd
>
> Michael
>

byte[] buffer = new byte[4096];
while((bytesRead = rdFile.read(buffer)) != -1)
wrClient.write(buffer, 0, bytesRead);
wrClient.flush();


Wrclient er DataOutputStream
bytesRead er int
rdFile er FileInputStream(new File())

resten er vist selvforklarende. Dette benytter jeg i noget webserver
kode jeg har kørende.


--
www.schulz.dk - En nørds bekendelser | Better late than never. --
www.guadec.org - tapas, beer and gnome | Titus Livius (Livy)
|

Michael Hvalsoee Bri~ (27-03-2002)
Kommentar
Fra : Michael Hvalsoee Bri~


Dato : 27-03-02 16:58

takker, men vi stadig nogle problemer. Hvordan undgår vi at vi laver en
fil (her invoice1.gif) som vi sender fra ? Hvordan kan vi bare bruge den
originale fil ?
Hvis vi printer bytesRead ud mens vi sender for vi den samlede rigtige
størrelse (her er det 3* 4096 + 2436 bytes) men modtageren laver en fil
der har en samlet størrelse på 4*4096 ! .. Vi har prøvet at lede i
eksempler men har ikke rigtigt kunne finde noget der gav os svar.
Håber at i kan hjælpe !

mvh
Michael

Hvis vi prøver at sende en fil (temp.gif) gør vi det på følgende måde :
-----------
MulticastSocket socket;
DatagramPacket packet;
String group = "225.4.5.6";
socket = new MulticastSocket();
int bytesRead = 0;
byte[] data =null;
int count = 0;
byte[] buffer = new byte[4096];
FileInputStream rdFile = new FileInputStream("temp.gif");
DataOutputStream wrClient= new DataOutputStream(new
FileOutputStream("invoice1.gif"));
while((bytesRead = rdFile.read(buffer)) != -1)
{
wrClient.write(buffer, 0, bytesRead);
packet = new DatagramPacket
(buffer,buffer.length,InetAddress.getByName(group),MPORT);
socket.send(packet);
//System.out.println(bytesRead);
}
wrClient.flush();
-----
Vi modtager på følgende måde :

MulticastSocket socket;
DatagramPacket packet;
String group = "225.4.5.6";
socket = new MulticastSocket(MPORT);
socket.joinGroup(InetAddress.getByName(group));
byte data[] = new byte[4096];
packet = new DatagramPacket(data,data.length);
int bytesWritten = -1;
byte[] buffer = new byte[4096];
FileOutputStream fo = new FileOutputStream("temp4.gif");
DataInputStream wrServer = new DataInputStream(new
FileInputStream("temp.gif"));

for(int i = 0; i< 4; i++) //Skal være while et eller andet
{
socket.receive(packet);
buffer = packet.getData();
fo.write(buffer);
}



Kim Schulz wrote:

> On Wed, 27 Mar 2002 13:36:29 +0100
> Michael Hvalsoee Brinkloev <c991094@student.dtu.dk> wrote:
> > hvordan sender jeg et billede ?(multi- eller uni- cast ). Jeg skal
> > lave billede om til bytes ikke ? Hvordan laver jeg et JPEG billede om
> > til bytes (eller sektioner af bytes som jeg kan sende i nogle
> > forskellige packets)
> >
> > Alt hjælp eller links til eksempler vil blive modtaget med kyshånd
> >
> > Michael
> >
>
> byte[] buffer = new byte[4096];
> while((bytesRead = rdFile.read(buffer)) != -1)
> wrClient.write(buffer, 0, bytesRead);
> wrClient.flush();
>
> Wrclient er DataOutputStream
> bytesRead er int
> rdFile er FileInputStream(new File())
>
> resten er vist selvforklarende. Dette benytter jeg i noget webserver
> kode jeg har kørende.
>
> --
> www.schulz.dk - En nørds bekendelser | Better late than never. --
> www.guadec.org - tapas, beer and gnome | Titus Livius (Livy)
> |


Dennis Thrysøe (28-03-2002)
Kommentar
Fra : Dennis Thrysøe


Dato : 28-03-02 13:08



Michael Hvalsoee Brinkloev wrote:
> takker, men vi stadig nogle problemer. Hvordan undgår vi at vi laver en
> fil (her invoice1.gif) som vi sender fra ? Hvordan kan vi bare bruge den
> originale fil ?

Åbne en FileInputStream direkte til den originale fil? Eller hvis det er
på den modtagende host, kan enten skrive data ind i en
ByteArrayInputStream, via et byte array, eller endnu bedere: bruge data
direkte med det samme.

> Hvis vi printer bytesRead ud mens vi sender for vi den samlede rigtige
> størrelse (her er det 3* 4096 + 2436 bytes) men modtageren laver en fil
> der har en samlet størrelse på 4*4096 ! ..

Packet instansen kan fortælle jer hvor mange bytes der rent faktisk er
brugt.


for(int i = 0; i< 4; i++) { //Skal være while et eller andet

socket.receive(packet);
buffer = packet.getData();
fo.write(buffer, packet.getOffset(), packet.getLength());
}


-dennis


Thomas Vestergaard (27-03-2002)
Kommentar
Fra : Thomas Vestergaard


Dato : 27-03-02 13:52

Du kan bruge Socket og FileReader / FileWriter

Prøv at kigge i Sun's Toturial:
http://java.sun.com/docs/books/tutorial emnet "How to Use File Streams", der
finder du flere gode eksempler.

-thomas

"Michael Hvalsoee Brinkloev" <c991094@student.dtu.dk> wrote in message
news:3CA1BCCD.545A30F7@student.dtu.dk...
> hvordan sender jeg et billede ?(multi- eller uni- cast ). Jeg skal lave
> billede om til bytes ikke ? Hvordan laver jeg et JPEG billede om til
> bytes (eller sektioner af bytes som jeg kan sende i nogle forskellige
> packets)
>
> Alt hjælp eller links til eksempler vil blive modtaget med kyshånd
>
> Michael
>



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste