Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (683)
Games in Android Showcase (196)
games submitted by our members
Games in WIP (750)
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 2825 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.

orrenravid (166 views)
2016-07-16 03:57:23

theagentd (236 views)
2016-07-11 14:28:54

Hydroque (319 views)
2016-07-06 05:56:57

Hydroque (471 views)
2016-07-03 08:52:54

GrandCastle (353 views)
2016-07-01 09:13:47

GrandCastle (345 views)
2016-07-01 09:09:45

CopyableCougar4 (400 views)
2016-06-25 16:56:52

Hydroque (377 views)
2016-06-22 02:17:53

SwampChicken (347 views)
2016-06-20 13:22:57

SwampChicken (290 views)
2016-06-20 13:22:49
Making a Dynamic Plugin System
by Hydroque
2016-06-25 00:13:25

Java Data structures
by BinaryMonkL
2016-06-13 21:22:09

Java Data structures
by BinaryMonkL
2016-06-13 21:20:42

FPS Camera Tutorial
by Hydroque
2016-05-22 05:40:58

Website offering 3D Models specifically for games for free
by vusman
2016-05-18 17:23:09

Website offering 3D Models specifically for games for free
by vusman
2016-05-09 08:50:56

Website offering 3D Models specifically for games for free
by vusman
2016-05-06 11:10:21

Website offering 3D Models specifically for games for free
by vusman
2016-04-29 12:56:17 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!