26. marts 2002 - 21:21Der er
17 kommentarer og 1 løsning
Læsning af byte[]
Jeg har et lille problem. Jeg modtager efter forespørgsel (indeholdende "ping") en DatagramPacket fra en given server, som jeg kører en getData() på - dette returnerer et byte[].
Følgende ved jeg om byte-arrayet: "ping" Server responds with a single byte code ASCII 'j'
Jeg ved ikke hvad der menes, andet end at der på index 4 i byte[] står et 'j', hvorefter ping'en til serveren er returneret.
Hvilken kode skal der til for at hive denne ping ud af byte[]???
Det ser meget godt ud, men hvordan hiver jeg ping UD ? Altså hvis ping er rigtigt returneret, hvilken kode skal der så til for at jeg havner med en int eller String med den aktuelle ping der er til serveren??
1. Jeg sender en kommando (String) afsted til serveren: "ping". 2. Serveren returnerer et byte[]. 3. I dette byte[] har serveren lagt et tal for, hvor hurtig svartiden er til den selv.
Dette tal vil ved jeg ikke, hvordan jeg får fat i, kun at det eksisterer i det modtagne byte[] et eller andet sted efter 'j'.
joda. Vi kan vel experimentere os frem til det. find 3 servere. een tæt på hvor du er. hvis du har en localhost er den ideel som den NÆRE server een et stykke vej væk, fx i frankrig. een hulens langt væk, new Zeeland fx.
ping dem alle 3 via OS-kommandolinie og skriv tider og ip adresser ned.
ping dem igen med dit program der laver et bytearray og udskriv arrayet fra j og resten.
Det skulle være rimeligt nemt at finde de 4 (eller måske 8) byte i arrayet der er tiden.
det skal heller ikke være en toString(), men en: for (int i=0; i<bArr.length(); i++) { int j = bArr[i]; system.out.print( ","+Integer.toHexString(16) ); )
det er jo binære data vi leder efter.
og ja, den skal nok blive en ordentlig moppedreng.
hmmm, men lad os nu sige, at ovenstående er rigtigt returneret (jeg gør nok noget galt) hvordan får jeg så hevet min ping-time til serveren ud af disse hextal?
LOL, der er vist lige gået en prås op for mig. Måske er det meningen man selv skal måle svartiden på den afsendte pakke og at man så ikke skal bruge den modtagede pakke til andet end at måle på!!
Hvordan får jeg en int ud af et byte[]?
Hvis du svarer på det får du dine point (husk at oprette som svar og ikke kommentar)
Tak, det var jo det rigtige svar på at få en int ud af et byte[], og sorry jeg var lidt foran, opret lige et svar hvor du skriver "Så ka du lære det ka du", for jeg lærte faktisk noget af dig :)
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.