Hi !
Featured games (88)
games approved by the League of Dukes
Games in Showcase (679)
Games in Android Showcase (195)
games submitted by our members
Games in WIP (734)
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 2771 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.

DarkCart (28 views)
2016-05-29 02:30:33

Hydroque (43 views)
2016-05-26 14:45:46

Mac70 (55 views)
2016-05-24 21:16:33

theagentd (58 views)
2016-05-14 18:38:35

theagentd (90 views)
2016-05-10 22:37:41

theagentd (98 views)
2016-05-10 22:33:46

IanParcs (121 views)
2016-04-18 14:18:53

KaiHH (116 views)
2016-04-18 08:35:41

KaiHH (138 views)
2016-04-15 12:43:58

theagentd (145 views)
2016-04-14 02:16:17
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

List of Learning Resources
by SilverTiger
2016-02-05 09:39:47

List of Learning Resources
by SilverTiger
2016-02-05 09:38:38

List of Learning Resources
by SilverTiger
2016-02-05 09:35:50 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!