Avatar billede kasseper Nybegynder
13. august 2001 - 15:18 Der er 12 kommentarer og
2 løsninger

send en pakke

Hej.

Jeg skal forsøge at sende en pakke ud på nettet, så jeg skal bruge klassen DatagramPacket og DatagramSocket, og det er helt fint.
Men nu sidder jeg og \'bøvler\' og jeg mener \'bøvler\', med bytes og Bytes.
Sagen er den at jeg skal sende en pakke som ser sådan her ud :

4 consecutive bytes of 255 (32-bit integer -1),

altså 4 x 255 i bytes,

det næste skal så være en streng som ikke volder nogen problemer.

og det sidste en byte der er 0

Altså en pakke der sådan her ud :

255,255,255,255, min streng, 0

Men hvordan laver jeg en byte der 255 ?????

Jeg ved at det er rimeligt simpelt og jeg slår mig selv i hovedet når jeg ser det, men jeg kan ikke huske hur det gøres.....


Kan i ikke gi mig et eksempel på en sådan pakke ?

Mange tak


Kasseper
Avatar billede stigc Nybegynder
13. august 2001 - 15:19 #1
char test= 255; ?
Avatar billede disky Nybegynder
13. august 2001 - 15:20 #2
byte data[]={-1,-1,-1,-1,x,x,x,x,x,x,0}

hvor x\'er er data


-1 = 255
Avatar billede stigc Nybegynder
13. august 2001 - 15:22 #3
eller alle fire bytes :

int test=-1;
Avatar billede kasseper Nybegynder
13. august 2001 - 15:34 #4
OK sidste spg.

Lad os soge at jeg har dette her :

byte data[] = {-1,-1,-1,-1};
String myString = \"this is a test\";
byte data2[] = {0};

hvordan for jeg så sat de 3 Arrays sammen ?

Altså noget i denne stil :

data[] + myString.getBytes() + data2[];
eller hva ?
Avatar billede disky Nybegynder
13. august 2001 - 15:38 #5
nope der findes en metode til det.

kig her:
http://java.sun.com/docs/books/tutorial/java/data/copyingarrays.html

Og din string skal lige konverteres til byte[] før du kopierer den :)

Så du opretter et byte[] array som er så stort som det er nødvendigt, så kopierer du data[] derefter din String some bye[] over i, og til sidst data2[].
Avatar billede stigc Nybegynder
13. august 2001 - 15:48 #6
og til konverteringen kan du bruge:

http://www.addc.com/khephren/apidoc/com/addc/util/Utils.html#stringToByteArray(java.lang.String)
Avatar billede disky Nybegynder
13. august 2001 - 15:49 #7
Java\'s indbyggede er rigeligt god til dette formål.

Der er ovehovedet ingen grund til at tage 3. parts produkter med.
Avatar billede stigc Nybegynder
13. august 2001 - 15:56 #8
jeg troede faktisk det var JAVAs indbyggede jeg linket til, da jeg bare lavede en hurtig søgning på Internettet. men her er den:

byte[] b = \"dinstreng\".getBytes();

Avatar billede disky Nybegynder
13. august 2001 - 15:57 #9
hehe så er vi enige :)
Avatar billede kasseper Nybegynder
13. august 2001 - 16:06 #10
Det ser ud til at virke....

Og så gør han det sq igen....Bare til at slutte af på :

Hvordan angiver man en InetAddress.
I denne her f.eks.

Jeg har en IP, skal det være en String eller hvad ??????


DatagramSocket(int port, InetAddress laddr)


JEG LOVER AT JEG DELER POINT UD EFTER DETTE ;-)

og mange tak for den hurtige hjælp
Avatar billede kasseper Nybegynder
13. august 2001 - 16:06 #11
jeg acceptere senere idag.....lover
Avatar billede kasseper Nybegynder
13. august 2001 - 16:09 #12
OK, jeg fandt det selv....

InetAddress test = getByName(\"255.255.255.255\");

Skulle gøre det....
Avatar billede kasseper Nybegynder
13. august 2001 - 16:10 #13
arrghhh, jeg kan sku ikke helt lurer om pointfordelingen er retfærdig....?
Avatar billede disky Nybegynder
14. august 2001 - 08:49 #14
jeg beklager mig ikke :-)
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