|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2000
Messaggi: 279
|
[C#...NET in generale]CANALI TCP
Buongiorno a tutti e grazie per l'aiuto!!
Ho già postato in altri forum ma non ho ottenuto risposte, provo in questo fiducioso che qualcuno sappia aiutarmi! questo è il mio codice (C#): TcpChannel chan = new TcpChannel( 9000 ); ChannelServices.RegisterChannel( chan ); RemotingConfiguration.RegisterWellKnownServiceType( typeof(ChatApplication.Object1), "Obj1", WellKnownObjectMode.Singleton ); RemotingConfiguration.RegisterWellKnownServiceType( typeof(ChatApplication.Object2), "Obj2", WellKnownObjectMode.Singleton ); ...finora non ho avuto questa necessità ma adesso vorrei nel "sdoppiare" il canale...cioè registrare su un primo canale (9000) Object1 e invecein un secondo (9001) Object2... Come posso fare ciò??..finora ho ottenuto solo errori del tipo..CANALE GIA' REGISTRATO!!! Vi riporto il codice della prova che ho fatto (ho tolto la registrazione degli oggetti perchè il problema a monte è la registrazione del canale)! Codice:
TcpChannel chan = new TcpChannel( 9000 ); ChannelServices.RegisterChannel( chan ); TcpChannel chan2 = new TcpChannel( 9001 ); ChannelServices.RegisterChannel( chan2 ); GRAZIE!![/code]
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
mi maileresti il progetto di VS.net alla mia mail francesca8810@tin.it .....................cosi vedo il problema e cerco di capire come funzia il tuo prog
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Credo che il problema sia dato dal fatto che il nome di default del canale è "tcp" quindi le 2 istanze collidono su quel nome. Devi settare diversamente almeno uno dei due.
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2000
Messaggi: 279
|
!!
Intendi l'attributo Name del TcpChannel??
Ora provo..... mi potresti fare un esemio però con la registrazione dei "servizi"?? come vedi non c'è nulla per registrare il dato oggetto sul DATO canale quindi non saprei come fare! quanto a te kledimos...ehm...non posso darti tutta l'applicazione... mi spiace!
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero |
![]() |
![]() |
![]() |
#5 | |
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Re: !!
Quote:
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Non ho il framework installato, qui, ma mi pare che non sia immediato l'assegnazione di un nome. Il problema è comunque sicuramente quello. Se ho tempo domani provo....
![]()
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2000
Messaggi: 279
|
!!
Ho risolto!!..posto il codice se mai vi potesse servire!!..... tra l'altro invece di sdoppiare il server ho fatto sì che il client potesse registrare più canali..... meglio così.........
Una domanda per te artgon... la priorità secondo te a quanto è giusto metterla?? Se avete una soluzione più elegante postate.......... Codice:
private TcpChannel Chan = null; System.Collections.Specialized.ListDictionary propietà = new System.Collections.Specialized.ListDictionary(); propietà.Add("name", "CanaleTCP"+DateTime.UtcNow.ToString() ); propietà.Add("priority", "20"); propietà.Add("port", "0"); BinaryClientFormatterSinkProvider sinkProvider = new BinaryClientFormatterSinkProvider(); BinaryServerFormatterSinkProvider sinkProviderS = new BinaryServerFormatterSinkProvider(); Chan = new TcpChannel(propietà,sinkProvider,sinkProviderS); ChannelServices.RegisterChannel( Chan );
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Buono il codice, è interessante perchè usando Dictionary hai un controllo programmatico sulla faccenda, molto più elastico dell'uso dei files di configurazione....credo che questo sia un esempio degno di essere bookmarcato
![]() Per quanto riguarda la priorità secondo me dipende.....quanto + è alta tanto maggiore è la probabilità di essere connessi prima quindi si decide sulla base di come vuoi gestire il tutto....è interessante fare qualche esperimento su quanto questo effetivamente incida...se hai tempo e voglia.....
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:19.