Domanda

In primo luogo so che le coordinate sono probabilmente la terminologia sbagliata? Suppongo che passerei semplicemente le variabili xey, ma le coordinate lo descrivono meglio che sento.

Ora ho bisogno di un server a cui possono accedere 2 client, è un gioco di corse e richiede che ogni client sia in grado di manovrare simultaneamente una macchina da corsa, ognuna usando un diverso schema di controllo ma non è né qui né lì.

Speravo che qualcuno potesse aiutarmi quando si trattava di inviare le posizioni xey di una macchina da corsa al server e far sì che il server le inviasse al giocatore successivo e viceversa per consentire a entrambe le macchine da corsa di spostarsi sul stesso tempo nella finestra di ogni cliente. Finora ho fatto solo le cose semplici del server, come il server knock knock sul sito web sun, e un semplice server echo che ripete una stringa che invio al server.

Quando ho provato a usare int anziché string ho ricevuto un errore che l'int che volevo passare era dinamico (ovviamente cambia con ogni movimento) e non può essere passato come statico (usando readInt e writeInt).

Quindi qualsiasi aiuto su come creare il movimento desiderato su entrambe le finestre client attraverso il server sarebbe apprezzato.

Grazie

È stato utile?

Soluzione

Una soluzione semplice è utilizzare ObjectOutputStream con oggetti serializzabili :

class Coordinates implements Serializable{...}

ObjectOutputStream out = new ObjectOutputStream(...);
out.writeObject(new Coordinates(...));

Altri suggerimenti

Craig, sei vicino. Dinamico / statico è un malinteso, questo non ha nulla a che fare con il tuo gioco di corse o il cambiamento dei valori. È solo che non puoi deserializzare i campi, che sono dichiarati statici (o transitori), come dice nel javadoc per ObjectInputStream:

  

I campi dichiarati come transitori o statici vengono ignorati dal processo di deserializzazione.

La soluzione è (si spera) semplice: rimuovi il modificatore statico dai tuoi numeri interi x / y, che dovrebbe risolvere il problema. btw - se la tua stringa fosse stata statica, avrebbe fallito esattamente allo stesso modo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top