Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Inserire SocketAddress in un ByteBuffer

    Ciao a tutti!!!
    Il mio problema è il seguente: devo inserire in un ByteBuffer un pacchetto contenente due SocketAddress,poi le infomazioni contenute nel ByteBuffer vengono inviate in un canale.
    Una volta che da un canale (SocketChannel) recupero un ByteBuffer devo a questo punto estrarre le informazioni contenute nel buffer e quindi devo ricostruirmi i due SocketAddress..
    come si può fare???
    Grazie a tutti quelli che mi risponderanno

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Linguaggio?

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107
    Java

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    C'e' il forum apposito ... non e' questo quello giusto ...

    (peraltro lo hai anche usato altre volte ...)

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107
    opsss...non i accorta di non essere nel forum giusto

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Inserire SocketAddress in un ByteBuffer

    Ciao a tutti!!!
    Il mio problema è il seguente: devo inserire in un ByteBuffer un pacchetto contenente due SocketAddress,poi le infomazioni contenute nel ByteBuffer vengono inviate in un canale.
    Una volta che da un canale (SocketChannel) recupero un ByteBuffer devo a questo punto estrarre le informazioni contenute nel buffer e quindi devo ricostruirmi i due SocketAddress..
    come si può fare???
    Grazie a tutti quelli che mi risponderanno

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Inserire SocketAddress in un ByteBuffer

    Originariamente inviato da Azzurra85
    Il mio problema è il seguente: devo inserire in un ByteBuffer un pacchetto contenente due SocketAddress,poi le infomazioni contenute nel ByteBuffer vengono inviate in un canale.
    Una volta che da un canale (SocketChannel) recupero un ByteBuffer devo a questo punto estrarre le informazioni contenute nel buffer e quindi devo ricostruirmi i due SocketAddress..
    come si può fare???
    Innanzitutto in un ByteBuffer ci puoi inserire solo byte (o altri tipi primitivi). È chiaro quindi che un oggetto, come un SocketAddress, non puoi "infilarcelo" dentro direttamente!
    Una soluzione è serializzare gli oggetti, ottenere un byte[] e quindi creare un ByteBuffer dall'array. Infatti un ByteBuffer non è espandibile. La sua capacità viene impostata all'atto della creazione del ByteBuffer (tramite metodi statici) ed è fissa. E se serializzi un oggetto, però non sai a priori quanti byte verranno fuori.

    Quindi potrei suggerire i seguenti passi:

    - Si crea un ByteArrayOutputStream
    - Si crea un ObjectOutputStream (che fa il "wrap" del ByteArrayOutputStream)
    - Si scrive l'oggetto o gli oggetti sul ObjectOutputStream
    - Si ottiene da ByteArrayOutputStream un array di byte con toByteArray()
    - Si crea un ByteBuffer con il metodo statico wrap().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Ti sposto.

    Per il futuro: il linguaggio indicalo anche nel titolo, visto che è obbligatorio (anche nella sezione Java).

    E non ripostare la domanda nel forum giusto dopo che ti è stato segnalato che è nel posto sbagliato: usa il link "Segnala ad un moderatore" e chiedi di spostare la discussione.

    Riunisco il tutto.


    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

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107
    Dopo aver fatto tutto il lavoro che mi ha detto lei...come faccio a ricostruirmi i due SocketAddress che sono dei InetSocketAddress con un indirizzo IP e una porta dato un ByteBUffer???

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Azzurra85
    Dopo aver fatto tutto il lavoro che mi ha detto lei
    Lei??? Ma dammi pure del tu, eh.

    Originariamente inviato da Azzurra85
    come faccio a ricostruirmi i due SocketAddress che sono dei InetSocketAddress con un indirizzo IP e una porta dato un ByteBUffer???
    Con un procedimento che è praticamente il contrario.

    - Dal ByteBuffer si ottiene un array tramite il metodo array()
    - Si crea un ByteArrayInputStream passando al costruttore l'array.
    - Si crea un ObjectInputStream che fa il wrap del ByteArrayInputStream.
    - Si leggono gli oggetti dal ObjectInputStream.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.