Avatar billede clone Nybegynder
19. januar 2001 - 11:25 Der er 7 kommentarer og
1 løsning

Data via socket

Findes der en input stream reader, som kan modtage binær data og samtidig har en funktion til at læse tekst-linier??
Jeg ville havde brugt InputStream, som har en ReadLine funktion, men desværre har Sun været så tåbelige at ødelægge klassen ved at fjerne netop denne funktion.
Mit mål er at blive i stand til at implementere en HTTP protokol, som ud over selve teksten også kan modtage binære data (f.eks. billeder).
Avatar billede pstric Nybegynder
19. januar 2001 - 13:07 #1
Hvis du skal modtage binære data, så skal du parse den tekst du henter, og oprette en ny (binær) forbindelse til at hente de billeder, der er refereret til (href).
Avatar billede mercutio Nybegynder
20. januar 2001 - 18:26 #2
Opret en buffered reader sådan her

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

Socket skal så være navnet på den socket du har oprettet. Herefter kan du skrive
husk:
import java.net.*;
import java.io.*;
in.readLine som så fanger alt hvad der kommer ind på den socket.
Avatar billede mercutio Nybegynder
20. januar 2001 - 18:27 #3
Ups fik pastet lidt forkert men du kan skrive
String str = in.readLine();
hvor alt det der kommer til den socket så bliver gemt i str.
Avatar billede clone Nybegynder
22. januar 2001 - 12:34 #4
Desværre virker det ikke alligevel:
Man kan ikke læse binære data via BufferedReader. Findes der ikke et alternativ, eller er Sun gået helt i hundene?!?!
Avatar billede mercutio Nybegynder
22. januar 2001 - 16:44 #5
Det virker ikke? Det lyder underligt jeg mener når du siger læse binære data mener du så ikke bare \"010010101...\" Det burde den da godt kunne læse men hvis du vil behandle det som tal bagefter skal du jo lave det om til tal... Jeg vil gerne hjælpe dig færdig med det her hvis jeg kan du skal bare lige skrive hvordan du vil bruge den data du får ind. Altså hvilke metoder du skal bruge.
Avatar billede clone Nybegynder
23. januar 2001 - 10:19 #6
Jeg er interesseret i at læse bytes (8-bit), ikke chars (som vist nok er 32-bit i Java). De data jeg modtager stammer fra et CGI-script, som jeg har skrevet i C++. I dette script sender jeg 1000 bytes, som skal modtages og indlæses i et byte array i min Java Applet. Hvis jeg læser via ovenstående metode, bliver alle tegn indlæst i chars og konverteret til tekst.
Jeg er interesseret i at finde en inputstream, som både kan indlæse bytes (8-bit) og samtidig indeholder en readline funktion til indlæsning af chars (ren tekst) - dvs. en funktion som tager højde for newline mm.
Den klasse jeg havde udset mig hedder InputStream og indeholder netop denne funktionalitet, men desværre har Sun besluttet at readLine funktionen ikke længere skal være en del af klassen...øv.
Tak fordi du fortsat har lyst til at hjælpe.
Avatar billede mercutio Nybegynder
26. januar 2001 - 21:45 #7
Jeg vil lige prøve at maile min lærer med dit problem han er en haj men jeg kan ikke garantere han kan løse det her problem plus det tager et par dage at få et svar...
Avatar billede clone Nybegynder
28. januar 2001 - 00:22 #8
Tusind tak. Jeg glæder mig til at høre hans svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester