Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    Dimenticavo, non è detto che sia solo il server a "fare da server".
    ...

  2. #12
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    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')
    Non ho capito se questa è una specifica richiesta dalla tua applicazione o cosa.
    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.

    PS: attendo disposizioni su come trattare la discussione "risolta".
    Questo forum non attua il meccanismo di marcatura delle discussioni, per cui è sufficiente non alimentare ulteriormente la discussione.


    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

  3. #13
    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.
    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 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).
    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.

  4. #14
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    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.
    Per saperlo bisognerebbe vedere qual era il codice da te scritto perchè se non funzionava, qualcosa di sbagliato c'era. Garantito per esperienza diretta.

    Ad ogni modo ho trovato un'altra soluzione che si adatta meglio.
    Allora non indagheremo oltre.


    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

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