Toon posts:

[java] File transfer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig een file transfer te bouwen die gebruikt zal worden in een chatapplicatie. Hiermee moet je dus een file en user kunnen kiezen, vervolgens wordt er bij de ontvanger om een ontvangstbevestiging gevraagd en dan begint de transfer.

Mjin vraag is nu, hoe doe je die transfer? kan dat gewoon met DataOutputStream enzo (zo ja, hoe?) of is daar iets anders voor?

Edit:
ooh, ik vind net iets over FileOutputStream, moet ik dat gebruiken? Kan iemand mij een beetje op weg helpen?
En hoe geef ik de ontvanger aan, met z'n IP ?

  • NDF82
  • Registratie: Januari 2002
  • Laatst online: 26-08 21:49

NDF82

Doomed Space Marine

FileOutputStream fOS = new FileOutputStream(socket.getOutputStream));

Staat allemaal netjes beschreven op java.sun.com

Pentium 233MHz MMX + Diamond Monster 3D 3DFX Voodoo II


Verwijderd

Even de documentatie van de socketclass goed doorlezen, inderdaad, ndf82, op java.sun.com

  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

aan de socket klasse alleen heb je niet zoveel, ik denk dat je het best een bufferedreader en een printwriter kan gebruiken en dan strings oversturen met println en ontvangen met readln, ik vindt dit zelf het makkelijkst werken.

Met Data Outputstream heb ik slecht ervaringen maar dat komt door dat ik dat toen gebruikte in samenwerking met een ander (niet java) proggel.


edit:
Verwijderd schreef op 05 november 2002 @ 16:26:
Even de documentatie van de socketclass goed doorlezen, inderdaad, ndf82, op java.sun.com
aan de documentatie van de socket klasse heb je niet zoveel, en dat weet jij ook wel, als je niets te melden heb zeg dan niks.

[ Voor 0% gewijzigd door bazzs2001 op 06-11-2002 10:04 . Reden: toevoeging ]

groeten


Verwijderd

code:
1
2
3
4
5
6
String userInput;

while ((userInput = stdIn.readLine()) != null) {
    out.println(userInput);
    System.out.println("echo: " + in.readLine());
}


Gevonden door te zoeken op de socket class op java.sun.com.



Als je alleen maar komt om te flamen, kun je beter weg blijven. Veel heb jij ook niet toe te voegen he. Datgene wat jij vermeld staat in het verhaal(tje) van NDF82

  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

Verwijderd schreef op 06 november 2002 @ 10:10:
code:
1
2
3
4
5
6
String userInput;

while ((userInput = stdIn.readLine()) != null) {
    out.println(userInput);
    System.out.println("echo: " + in.readLine());
}


Gevonden door te zoeken op de socket class op java.sun.com.



Als je alleen maar komt om te flamen, kun je beter weg blijven. Veel heb jij ook niet toe te voegen he. Datgene wat jij vermeld staat in het verhaal(tje) van NDF82
ik ben hier niet om te flamen maar om te helpen, en wat ik zei voegde wat toe, jij verwees alleen maar naar het verhaaltje van NDF82.

en wat zit je nou te doen met de standaard input en standaard output, ik zie niet in hoe dat helpt met bestanden overzenden.

groeten


  • NDF82
  • Registratie: Januari 2002
  • Laatst online: 26-08 21:49

NDF82

Doomed Space Marine

bazzs2001 schreef op 06 november 2002 @ 10:02:
aan de socket klasse alleen heb je niet zoveel, ik denk dat je het best een bufferedreader en een printwriter kan gebruiken en dan strings oversturen met println en ontvangen met readln, ik vindt dit zelf het makkelijkst werken.

Met Data Outputstream heb ik slecht ervaringen maar dat komt door dat ik dat toen gebruikte in samenwerking met een ander (niet java) proggel.


edit:


[...]


aan de documentatie van de socket klasse heb je niet zoveel, en dat weet jij ook wel, als je niets te melden heb zeg dan niks.
Als je data gaat lezen met readln leest ie een line als ie \n tegenkomt, maar ook als ie \r\n tegen komt. Hoe schrijft ie dan een line??? Alleen een \n of een \r\n??? Volgens mij kun je dan data verliezen.

[offtopic]
jongens, hou nou eens op met dat geflame :r
[/off topic]

Pentium 233MHz MMX + Diamond Monster 3D 3DFX Voodoo II


  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

NDF82 schreef op 06 november 2002 @ 10:19:
[...]
Als je data gaat lezen met readln leest ie een line als ie \n tegenkomt, maar ook als ie \r\n tegen komt. Hoe schrijft ie dan een line??? Alleen een \n of een \r\n??? Volgens mij kun je dan data verliezen.
[offtopic]
jongens, hou nou eens op met dat geflame :r
[/off topic]
ja baas

hier een ander stukje code dat zou kunnen werken dan (niet getest):
code:
1
2
3
4
5
6
7
8
9
  //server kant
  Socket s = serverSocket.accept();
  Printwriter p = new PrintWriter(new Writer(s.getOutputStream()));
  byte[] byteArr = new byte[lengte];
  //hier de code om je bestand in te lezen met de fileinputstream zie de docjes   
  //waar NDF naar verwijst
  p.writeln(byteArr.length);
  p.write(byteArr);
  p.flush();


code:
1
2
3
4
5
6
7
8
  //client kant
  Socket s = new Socket(host,port);
  BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
  int lengte = Integer.parseInt(br.readLine());
  byte[] byteArr = new byte[lengte];
  br.read(byteArr)
  //hier de code om je bestand te schrijven met de fileoutputstream zie de docjes   
  //waar NDF naar verwijst

groeten


  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

NDF82 schreef op 05 november 2002 @ 16:22:
FileOutputStream fOS = new FileOutputStream(socket.getOutputStream));

Staat allemaal netjes beschreven op java.sun.com
gaat niet lukken:
A file output stream is an output stream for writing data to a File or to a FileDescriptor(de constructor moet een file of een string mee krijgen)

je kan em wel gebruiken om de byte array mee weg te schrijven.

groeten


  • NDF82
  • Registratie: Januari 2002
  • Laatst online: 26-08 21:49

NDF82

Doomed Space Marine

Moet je iemand nou alles voorkouwen, beetje zelf zoeken mag toch ook wel?? ;)

Pentium 233MHz MMX + Diamond Monster 3D 3DFX Voodoo II


  • bazzs2001
  • Registratie: April 2002
  • Laatst online: 13-06 11:18

bazzs2001

je moet knagen wat lekker is

NDF82 schreef op 06 november 2002 @ 10:48:
Moet je iemand nou alles voorkouwen, beetje zelf zoeken mag toch ook wel?? ;)
wel laten zoeken in de goede richting h :Y) :*)

groeten

Pagina: 1