Avatar billede dj_alf Nybegynder
26. august 2002 - 14:47 Der er 5 kommentarer og
1 løsning

UDP Packets

hejsa der!

jeg har lige et begynder spørgsmål. hvordan resetter jeg en UDP packet?

eksempel:
public void run () {
            byte[] buf = new byte[256];

                    // receive request
                DatagramPacket packet = new DatagramPacket(buf, buf.length);
            while (moreQuotes == true) {
           
              try {
             
               
                socket.receive(packet);
                System.err.println("Log entry from :" + packet.getAddress() +
                                  "\n port:" + packet.getPort() +
                                  "\n containing :" + new String (packet.getData())+
                                  "\n");
                packet.setData(buf,0,0);
             
              } catch (IOException e) {
                e.printStackTrace();       
                moreQuotes = false;
              }
              }

        }

de pakker/komplette strenge jeg får har forskellige længde, derfor skulle packet gerne resettes.
Avatar billede dj_alf Nybegynder
26. august 2002 - 14:48 #1
packet.setData(buf,0,0); virker forresten ikke, skulle egentlig være fjernet.
Avatar billede disky Nybegynder
26. august 2002 - 14:58 #2
Hvad mener du med resettes ?
Avatar billede disky Nybegynder
26. august 2002 - 14:58 #3
fly evt. denne:
DatagramPacket packet = new DatagramPacket(buf, buf.length);

ned i din while() løkke (den inderste)
Avatar billede dj_alf Nybegynder
26. august 2002 - 15:08 #4
ok. Dumt spørgsmål så!

Vil jeg så ikke gennerer en ny packet, og til sidst fylde hukommelsen? eller der noget jeg har misset i timen?
Avatar billede disky Nybegynder
26. august 2002 - 15:13 #5
Nej det er skam korrekt.

Hvis du inden din afsluttende } i din inderste while løkke siger:
packet=null;

Skulle du fortælle Garbage Collectoren at det objekt ikke skal bruges mere, og når den når op i while løkken igen, opretter den et nyt.
Det skulle sørge for at du ikke bare bruger løs af hukommelsen.
Avatar billede dj_alf Nybegynder
26. august 2002 - 15:22 #6
hrm jeg får stadig 'gamle' pakker ind i packet.
enten er det min 'client' der sender dem sådan eller er det packet der ikke bliver nulstillet rigtigt!

any ideas?
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