Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [JAVA]byte[] e IP

  1. #1
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302

    [JAVA]byte[] e IP

    nel package java.net.* ci sono diverse classi che richiedono un array di 4 byte per IPv4 e 6 per IPv6. Ma come faccio a metterci dentro all'array un IP tipo 151.128.128.193, che il tipo byte in Java va da -128 a 127 e non esiste l'unsigned?
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; se ti riferisci alle classi Inet4Address e Inet6Address secondo me dovresti utilizzare il metodo getByName(String host); per avere un oggetto di tipo Inet4Address/Inet6Address e poi utilizzare i metodi per ottenre l'array di byte se ti serve
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    Sì, esatto, per l'esatezza mi riferisco al metodo:

    objInet4Address.getByAddress(byte[])

    che restituisce un InetAddress.
    L'IP ce l'ho già, e dovrei creare un Inet4Address, solo che non so come passarglielo visto che mi va in overflow...è importante che si connetta tramite IP.

    Cmq adesso sto solo facendo delle prove e posso fare come mi hai suggerito: così vedo come mi crea l'array di 4 byte e vedo come fa per l'overflow.
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  4. #4
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    ok, ho scoperto come fa, è l'uovo di colombo:

    se il byte supera il 127 riparte da -128. Ad esempio per non andare in overflow con 172 dovrei scrivere -84
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Non è necessario quell'espediente, basta usare un cast esplicito prima dei numeri:
    codice:
    byte [] ip = {(byte) 255, (byte) 255, (byte) 255, (byte) 255};
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    ah, ok, perfetto!!!

    Non ci avevo pensato minimamente. Io utilizzavo la Byte.parseByte(int) e mi dava overflow...


    grazie
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.