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