Hi !
Featured games (84)
games approved by the League of Dukes
Games in Showcase (604)
Games in Android Showcase (171)
games submitted by our members
Games in WIP (654)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  2 player, turn based game communications  (Read 2566 times)
0 Members and 1 Guest are viewing this topic.
Offline patito

Innocent Bystander

« Posted 2012-07-03 10:57:26 »


I have a 2 player, turn based game which uses DataInputStream and DataOutputStream to send and receive String and int messages to and from the server. I was looking for a way to receive the messages and paint the resulting changes while respecting the rule that all Swing jobs should only be done on the EDT, while receiving data should never be done on the EDT. I have found something that seems to work, but my question is really if it is the most efficient way and if there are other "standard" ways of doing this. This is what I am doing at the moment:

public void processMessage(String message){// Process messages sent by server
    if(message.equals("do something")){
        a = myReadInt();
        b = myReadUTF();
Thank you in advance.
    else if(message.equals("do something else")){
        a = myReadInt();
        b = myReadUTF();
    String m = message;
        javax.swing.SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                processMessageEDT(m, a, b);
    }catch(Exception e){System.err.println("error");}
Offline Summit

Senior Newbie

Medals: 1

« Reply #1 - Posted 2012-07-06 16:22:17 »

I favor using a producer-consumer design pattern for problems such as these.

The networking thread reads incoming packets/data/whathaveyou, deserializes them appropriately, and stores them in a queue. This is the 'producer'. Each game loop, the game logic empties this queue and performs the appropriate game logic. This is the 'consumer'. The two threads never interact directly.
Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

bilznatch (27 views)
2015-08-04 11:03:17

SHC (44 views)
2015-08-01 03:58:20

Jesse (25 views)
2015-07-29 04:35:27

Riven (48 views)
2015-07-27 16:38:00

Riven (26 views)
2015-07-27 15:35:20

Riven (28 views)
2015-07-27 12:26:13

Riven (19 views)
2015-07-27 12:23:39

BurntPizza (42 views)
2015-07-25 00:14:37

BurntPizza (56 views)
2015-07-24 22:06:39

BurntPizza (35 views)
2015-07-24 06:06:53
List of Learning Resources
by gouessej
2015-07-09 11:29:36

How Do I Expand My Game?
by bashfrog
2015-06-14 11:34:43

List of Learning Resources
by PocketCrafter7
2015-05-31 05:37:30

Intersection Methods
by Roquen
2015-05-29 08:19:33

List of Learning Resources
by SilverTiger
2015-05-05 10:20:32

How to: JGO Wiki
by Mac70
2015-02-17 20:56:16

2D Dynamic Lighting
by ThePixelPony
2015-01-01 20:25:42

How do I start Java Game Development?
by gouessej
2014-12-27 19:41:21 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!