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?
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?
usi il binaryformatter e poi trasmetti l'oggetto serializzato attraverso un canale (http..., tcp ecc)?
Saluti a tutti
Riccardo
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..
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
si ma così non uso socket, la comunicazione usa solo socket è questo il dilemma
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.Originariamente inviato da Stoicenko
...così non uso socket...
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
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[])?
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
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?
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.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?
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