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)
> |