Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254

    Inviare oggetti via socket con c#

    Devo inviare un oggetto personale tramite socket..

    Sto usando una dll che converte l'oggetto in un array di byte per poi fare il metodo send che accetta solo array di byte..

    Solo che sfortunatamente non va..

    Qualcuno conosce un altro sistema?

  2. #2
    usi il binaryformatter e poi trasmetti l'oggetto serializzato attraverso un canale (http..., tcp ecc)?
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    ok però la comunicazione deve essere via socket.. cioè fatta cmq con il metodo send(Byte[])

    posso cmq usare la serializzazione?

    Un esempietto di serializzazione?

    Grazie..

  4. #4
    da una parte c'e' chi manda dall'altra chi riceve quindi e' necessario stabilire un canale
    HttpChannel (se usi iis e asp.net)
    TcpChannel (se vuoi performance)
    e serializzare l'oggetto usando una delle due classi
    SoapFormatter
    BinaryFormatter
    Se ad esempio usi WCF oppure installi gli ultimi web services enhancement, puoi utilizzare ad esempio la comoda classe soapsender che e' in grado di utilizzare il canale tcp senza bisogno di iis. Gli esempi a memoria e' un po difficile farli. Prova a scrivere tu quello che hai fatto o ad approfondire su msdn (es. di remoting)
    http://msdn2.microsoft.com/en-us/lib...hapt11_topic12
    Saluti a tutti
    Riccardo

  5. #5
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    si ma così non uso socket, la comunicazione usa solo socket è questo il dilemma

  6. #6
    Originariamente inviato da Stoicenko
    ...così non uso socket...
    scusa ma.... cosa intendi? Sai cose' un socket? e' uno dei modi per definire un canale di trasporto in cui alla fine e' identificata una porta dietro la quale qualcuno e' in ascolto.
    Quindi quando parlo di soapsender parlo di una classe che usa un canale di trasporto (protocollo utilizzato) con un endpoint definito e dei dati da spedire. Allo stesso modo, se usi la classe httpchannel o tcpchannel definisci dei "socket"
    Saluti a tutti
    Riccardo

  7. #7
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    quindi ad esempio ho un mio oggetto chiamato "ogg"

    nel server ho un socket "server" che è in listen(1000) e che con un ciclo while crea dei socket "figli" che con il metodo accept() prelevano dalla coda le comunicazioni

    il client deve mandare l'oggetto..

    cosa dovrebbe fare?

    serializzare l'oggetto e mandarlo con quale metodo?

    oppure serializzarlo e trasformarlo in qualche modo in byte[] per mandarlo con send(byte[])?

  8. #8
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    httpchannel si utilizza nel remoting !!!
    lui invece vuole utilizzare i socket...
    Stoicenko, per prima decidi cosa vuoi utilizzare...
    httpchannel utilizza i socket ma è a livello più astratta e molto più semplice anche se i socket non è che siano difficili...
    I got the remedy

  9. #9
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    uso i socket..

    più che altro sono costretto..

    fin'ora sono riuscito a passare solo stringhe trasformate in array di byte ma oggetti no..

    e fin'ora non ho trovato nessuna documentazione valida sulla serializzazione (anche se non ho capito a cosa serve) e su metodi per trasformare un oggetto in un array di byte...

    avete una soluzione?

  10. #10
    Originariamente inviato da Stoicenko
    e fin'ora non ho trovato nessuna documentazione valida sulla serializzazione (anche se non ho capito a cosa serve) e su metodi per trasformare un oggetto in un array di byte...
    avete una soluzione?
    Se vuoi trasmettere e ricevere oggetti, la soluzione si chiama Remoting e di documentazione ce ne quanta ne vuoi, prova a fare qualche ricerca su msdn. Non e' comunque materia facile. Gli oggetti si possono trasmettere byref o byval e questo comporta il dover mettere o meno ad esempio l'attributo serialize alla classe che vuoi trasmettere o meno. Un link te l'ho gia postato in precedenza cosi come ti ho indicato le principali classi coinvolte nella creazione di un canale di trasmissione e nella serializzazione.

    Considera poi che l'ultima evoluzione del framework 3.0 riunisce in un unico tecnologia chiamata Windows Communication Foundation quello che prima era sparso tra remoting, web services ed enterprise services. Quindi, nel documentarti, cerca di tenerti aggiornato sull'ultima tecnologia a disposizione.
    Saluti a tutti
    Riccardo

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.