Avatar billede rudih Nybegynder
07. november 2006 - 09:07 Der er 5 kommentarer

C server skal skrives om til Java.

Hej,

Jeg er ved at skrive et C program om til Java.

Mit problem er, at jeg skal modtage TCP pakkerne i formatet:

typedef struct __pakke {
    u_short eventID;
    u_char eventCode;
    u_char time[3];
    u_short date;
    u_char GPRMC_bitfield;
    u_char GPRMC_lat[4];
    u_char GPRMC_long[4];
    u_char GPRMC_speed[2];
    u_char inputs;
    u_char outputs;
    u_char analog_input;
    u_char power_input;
    u_char status;
    u_char extra[2];
    u_char fuel[2];
    u_char event_data_size[2];
} PAKKE;

Hvis jeg blot læser TCP streamen med readline, får jeg firkanter, som jeg ikke kan bruge til noget.

Så mit spørgsmål er, hvordan laver jeg lettest en server, hvor jeg kan læse og skrive pakker efter et bestemt format, som dette?
Avatar billede arne_v Ekspert
07. november 2006 - 13:16 #1
wrap din Socket InputStream i en DataInputStream

(alle dine felter er 1 byte, så InputStream read burde faktisk også virke)
Avatar billede schwarz84 Nybegynder
13. november 2006 - 18:52 #2
Problemet er at Readers er beregnet til at læse tekst med.
Det du skal gøre er i stedet at tage en inputstream og læse det ud i et byte[] og så virker det som arne_v siger således at det første tegn er eventID, det næste eventCode osv...
Avatar billede rudih Nybegynder
14. november 2006 - 08:21 #3
Tak for de gode svar :)

Nu er jeg ikke så meget hjemme i netværksprogrammering i JAVA, har du et lille eksempel du kan sende eller henvise mig til?
Avatar billede arne_v Ekspert
14. november 2006 - 13:06 #4
http://www.eksperten.dk/artikler/515

har nogle socket eksempler - ganske vist Java <-> .NET men monstro ikke du kan lære
noget alligevel

ellers er der naturligvis http://java.sun.com/docs/books/tutorial/networking/sockets/index.html
Avatar billede arne_v Ekspert
10. december 2006 - 01:10 #5
rudih ?
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