Dimenticavo, non è detto che sia solo il server a "fare da server".
Dimenticavo, non è detto che sia solo il server a "fare da server".
...
Non ho capito se questa è una specifica richiesta dalla tua applicazione o cosa.Il server è impossibilitato a stimolare in modo asincrono un client,ovvero quello che tentavo di fare (prendendo una socket da una struttura dati e senza preavviso utilizzare un OutputStream per inviare messaggi). Può solo rispondere se gli è stata fatta una richiesta diretta da un client(comunicazione client 'x' - server - client 'x')
Perchè se si parla di semplice "fattibilità", mi sembra di averti dimostrato che è possibilissimo che un server comunichi ad un client senza che questo sia obbligato ad effettuare per primo un'azione di richiesta. Il server, in questo senso, non è solo un "risponditore"... può tranquillamente "prendere l'iniziativa" e comunicare qualcosa ai suoi client, senza che questi abbiano richiesto alcunchè (ed è il normale funzionamento di una chat).
La comunicazione tramite Socket è a tutti gli effetti bidirezionale ed asincrona; questo svincola il client dal dover "chiedere in polling" al server se vi sono messaggi per lui... quando il server riceve una richiesta di invio messaggio da parte del client A per il client B può tranquillamente spedire il pacchetto al client B senza che quest'ultimo abbia prima fatto un polling... tutto sta nel saper progettare in modo corretto e cooperativo il client ed il server.
Questo forum non attua il meccanismo di marcatura delle discussioni, per cui è sufficiente non alimentare ulteriormente la discussione.PS: attendo disposizioni su come trattare la discussione "risolta".
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
Come da post iniziale, mi chiedevo solamente perchè non dovesse funzionare qualsiasi delle svariate implementazioni ( e tranquillo che ci ho perso e ci ho messo molto del mio). In questo momento l'applicazione funziona perfettamente,grazie proprio al fatto che l'architettura si è trasformata da client server a P2P.Originariamente inviato da Caiodark
Stai implementando questa applicazione a scopo "didattico", dovresti cercare di metterci un po' del tuo per risolvere la cosa.
Ad ogni modo, hai ben chiaro che il giro funziona quando il client chiede e il server risponde.
Non potresti fare in modo che il client faccia polling verso il server per controllare se ci sono nuovi messaggi?
Occhio che a questo punto nel client dovrai gestirti l'accesso delle risorse in concorrenza, e le tue risorse sono il socket verso il server e la bacheca dei messaggi.
L'ossatura da te inviata è esattamente, precisamente, quella da me implementata inizialmente. Perfettamente uguale. Per questo chiedevo cosa mai potesse esserci di sbagliato nel ragionamento da me fatto, secondo me e anche secondo te legittimissimo.Ad ogni modo ho trovato un'altra soluzione che si adatta meglio.Originariamente inviato da LeleFT
Perchè se si parla di semplice "fattibilità", mi sembra di averti dimostrato che è possibilissimo che un server comunichi ad un client senza che questo sia obbligato ad effettuare per primo un'azione di richiesta. Il server, in questo senso, non è solo un "risponditore"... può tranquillamente "prendere l'iniziativa" e comunicare qualcosa ai suoi client, senza che questi abbiano richiesto alcunchè (ed è il normale funzionamento di una chat).
Per saperlo bisognerebbe vedere qual era il codice da te scritto perchè se non funzionava, qualcosa di sbagliato c'era. Garantito per esperienza diretta.Originariamente inviato da ilrosso211
L'ossatura da te inviata è esattamente, precisamente, quella da me implementata inizialmente. Perfettamente uguale. Per questo chiedevo cosa mai potesse esserci di sbagliato nel ragionamento da me fatto, secondo me e anche secondo te legittimissimo.
Allora non indagheremo oltre.Ad ogni modo ho trovato un'altra soluzione che si adatta meglio.
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