/ 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
Binært læsning og skrivning!
Fra : Lars Madsen


Dato : 14-10-02 15:32

Jeg sidder og bikser lidt med en FTP klient, jeg er bare løbet ind i
problemer. Jeg kan godt hente en tekst fil og få den skrevet på disken, men
når det skal være binært (billeder, musik...) kommer der noget fjol med
(filen bliver ihvertfald lidt større, og virker ikke). Her er koden hvis
nogle har en god ide til hvad der kan være galt


public static void getfile(String host, int portnr, String filnavn) throws
IOException
{
System.out.println("DATA forbindelse");
try {
Socket dforbindelse = new Socket(host,portnr);
OutputStream os = new FileOutputStream(filnavn);
InputStream is = dforbindelse.getInputStream();

int s = is.read();
while (s != -1)
{
os.write(s);
s = is.read();
}

os.close();
dforbindelse.close();
System.out.println("Forbindelse lukket");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Der er opstået fejl!");
}
}

Hilsen Lars Madsen

 
 
Morten F. Hansen (14-10-2002)
Kommentar
Fra : Morten F. Hansen


Dato : 14-10-02 15:45

"Lars Madsen" <larstmadsen@hotmail.com> wrote in message news:aoekfs$29k$1@sunsite.dk...
> Jeg sidder og bikser lidt med en FTP klient, jeg er bare løbet ind i
> problemer. Jeg kan godt hente en tekst fil og få den skrevet på disken, men
> når det skal være binært (billeder, musik...) kommer der noget fjol med
> (filen bliver ihvertfald lidt større, og virker ikke). Her er koden hvis
> nogle har en god ide til hvad der kan være galt
> <cut>

Har du husket at bede FTP-serveren om binær overførsel med kommandoen "BINARY"?



Lars Madsen (14-10-2002)
Kommentar
Fra : Lars Madsen


Dato : 14-10-02 16:35

Morten F. Hansen wrote:

> "Lars Madsen" <larstmadsen@hotmail.com> wrote in message
> news:aoekfs$29k$1@sunsite.dk...
>> Jeg sidder og bikser lidt med en FTP klient, jeg er bare løbet ind i
>> problemer. Jeg kan godt hente en tekst fil og få den skrevet på disken,
>> men når det skal være binært (billeder, musik...) kommer der noget fjol
>> med (filen bliver ihvertfald lidt større, og virker ikke). Her er koden
>> hvis nogle har en god ide til hvad der kan være galt
>> <cut>
>
> Har du husket at bede FTP-serveren om binær overførsel med kommandoen
> "BINARY"?

tak for svaret, det var det der var galt, kommandoen hedder ikke "BINARY"
men "TYPE I"

Hilsen Lars

Morten F. Hansen (14-10-2002)
Kommentar
Fra : Morten F. Hansen


Dato : 14-10-02 16:52

> > Har du husket at bede FTP-serveren om binær overførsel med kommandoen
> > "BINARY"?
> tak for svaret, det var det der var galt, kommandoen hedder ikke "BINARY"
> men "TYPE I"

Det er også rigtigt! Lidt siden jeg har rodet med FTP



Lars Madsen (15-10-2002)
Kommentar
Fra : Lars Madsen


Dato : 15-10-02 08:49

Her er lige et tillægsspørgsmål.

Jeg kan godt oprette en forbindelse til FTP serveren på DTU og på
ftp2.sunsite.dk , men hos en kammerat som køre en bulletproof FTP går det
istå efter brugernavnet er sendt, er det ikke meget mærkelig.
Jeg har indsat et uddrag af den kode hvpor det går galt


import java.util.*;
import java.io.*;
import java.net.*;

public class scanner
{
public static void main(String[] arg)
{
String host = "ftp2.sunsite.dk";
String user = "redhat";
String pass = "redhat";
int dataportnr;
System.out.println("FTP klient BETA2.1");
try {
Socket forbindelse = new Socket(host,21);
OutputStream binærUd = forbindelse.getOutputStream();
InputStream binærInd = forbindelse.getInputStream();
PrintWriter ud = new PrintWriter(binærUd);
BufferedReader ind = new BufferedReader(new
InputStreamReader(binærInd));
System.out.println(ind.readLine());

ud.println("USER " + user);
ud.flush();
System.out.println("USER - send");
System.out.println("USER: " + ind.readLine()); ////////Der kommer
aldrig besked fra server om at brugrnavn er godkendt

ud.println("PASS " + pass);
ud.flush();
System.out.println("PASS - send");
System.out.println("PASS: " + ind.readLine());

forbindelse.close();
System.out.println("Forbindelse lukket");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Der er opstået fejl!");
}
}


Morten F. Hansen (15-10-2002)
Kommentar
Fra : Morten F. Hansen


Dato : 15-10-02 14:53

"Lars Madsen" <larstmadsen@hotmail.com> wrote in message news:aogh7h$c6p$1@sunsite.dk...
> Her er lige et tillægsspørgsmål.
> Jeg kan godt oprette en forbindelse til FTP serveren på DTU og på
> ftp2.sunsite.dk , men hos en kammerat som køre en bulletproof FTP går det
> istå efter brugernavnet er sendt, er det ikke meget mærkelig.
> Jeg har indsat et uddrag af den kode hvpor det går galt
> [cut]

Måske forventer bulletproof en "\r\n"-sekvens efter hver linie. Mon ikke
System.out.println() kun laver en "\n"?



Morten F. Hansen (15-10-2002)
Kommentar
Fra : Morten F. Hansen


Dato : 15-10-02 14:56

"Morten F. Hansen" <info@127.0.0.1> wrote in message news:aoh6l7$33f$1@sunsite.dk...
> > Her er lige et tillægsspørgsmål.
> > Jeg kan godt oprette en forbindelse til FTP serveren på DTU og på
> > ftp2.sunsite.dk , men hos en kammerat som køre en bulletproof FTP går det
> > istå efter brugernavnet er sendt, er det ikke meget mærkelig.
> > Jeg har indsat et uddrag af den kode hvpor det går galt
> > [cut]
>
> Måske forventer bulletproof en "\r\n"-sekvens efter hver linie. Mon ikke
> System.out.println() kun laver en "\n"?

Jeg mener selvfølgelig PrintWriter.println(), ikke System.out.println()



Lars Madsen (15-10-2002)
Kommentar
Fra : Lars Madsen


Dato : 15-10-02 16:51

Morten F. Hansen wrote:

> "Morten F. Hansen" <info@127.0.0.1> wrote in message
> news:aoh6l7$33f$1@sunsite.dk...
>> > Her er lige et tillægsspørgsmål.
>> > Jeg kan godt oprette en forbindelse til FTP serveren på DTU og på
>> > ftp2.sunsite.dk , men hos en kammerat som køre en bulletproof FTP går
>> > det istå efter brugernavnet er sendt, er det ikke meget mærkelig.
>> > Jeg har indsat et uddrag af den kode hvpor det går galt
>> > [cut]
>>
>> Måske forventer bulletproof en "\r\n"-sekvens efter hver linie. Mon ikke
>> System.out.println() kun laver en "\n"?
>
> Jeg mener selvfølgelig PrintWriter.println(), ikke System.out.println()
>
Det var lige det dr var galt, mange tak!

Hilsen Lars

Morten F. Hansen (15-10-2002)
Kommentar
Fra : Morten F. Hansen


Dato : 15-10-02 16:59

"Lars Madsen" wrote:
>>> Måske forventer bulletproof en "\r\n"-sekvens efter hver linie. Mon ikke
>>> System.out.println() kun laver en "\n"?
>> Jeg mener selvfølgelig PrintWriter.println(), ikke System.out.println()
> Det var lige det dr var galt, mange tak!

Cool! Selv tak



Ole Ildsgaard Hougaa~ (15-10-2002)
Kommentar
Fra : Ole Ildsgaard Hougaa~


Dato : 15-10-02 20:49

Lars Madsen <larstmadsen@hotmail.com> wrote:

<snip: en masse>
> int s = is.read();
> while (s != -1)
> {
> os.write(s);
> s = is.read();
> }

Ville det ikke være hurtigere at læse og skrive nogle flere bytest ad
gangen? Som f.eks.:
final int BUFFER_SIZE = 2048;
byte[] buffer = new byte[BUFFER_SIZE];
int read;
while((read = inputStream.read(buffer)) >= 0) {
outputStream.write(buffer, 0, read);
}
Jeg har i hvert fald før været ude for at read og write med 1 byte ad
gangen var en flaskehals.
--
Ole I. Hougaard
oih@get2net.dk

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

Månedens bedste
Årets bedste
Sidste års bedste