Imparare le tecnologie java server, cercando di chiarire alcune cose. Esistono poche tecnologie che consentono alle applicazioni java di comunicare tra loro.In che modo il server può inviare dati al client?
1) servizi Web (REST/SOAP) oltre http
2) POST Semplice/GET utilizzando URLConnection su HTTP.
3) prese
4) RMI = Sockets + serializzazione degli oggetti + alcune utilità
5) Diversi media server come red5 = RTMP o RTMPT
Tutte queste tecnologie per scontato che ci sia un server applicazione e client. L'applicazione client conosce l'indirizzo del server e dovrebbe essere l'iniziatore della chiamata. E per quanto ho capito ci sono ora per il server per spingere i dati al client, egli può solo inviare i dati indietro come risposta al client. Ed è possibile, se solo cambiano i loro ruoli, in questo caso il server dovrebbe conoscere l'IP del client.
Quindi mi chiedo come funzionano i giochi di rete? È possibile aprire la connessione e scambiare dati tra server e client per tutto il tempo senza richiedere una richiesta dal client ogni 1-2 secondi e il server non conoscerebbe l'IP del client. Non sto parlando di Comet e altri hack.
Grazie
Anche i giochi di rete in tempo reale spesso "imbrogliano" un po '. Ogni client aggiorna il mondo localmente in tempo reale e fa qualche trucco per risincronizzare la simulazione condivisa quando arriva un nuovo aggiornamento dal server. Quando spari al tuo nemico potrebbe essere lui schivare il tuo colpo ottenendo solo un piccolo danno o potrebbe non esserlo. Ovviamente è il server che deciderà in modo imparziale a seconda che il comando schivata di quel cliente sia arrivato prima o dopo lo sparo ... ma il giocatore attaccante probabilmente non noterà un'eventuale incongruenza tra l'animazione 3d mostrata e il numero di energia barre sottratte. – 6502