Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (475)
Games in Android Showcase (106)
games submitted by our members
Games in WIP (530)
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  
  Single thread for Multi User?  (Read 996 times)
0 Members and 1 Guest are viewing this topic.
Offline Xyle
« Posted 2009-04-04 18:08:19 »

Currently I use 1 thread for each client that connects to a game or chat system. I just realized how easier it would be for me to maintain code, add new features or to update the systems if I used 1 thread for communicating with the clients instead of 1 thread for each client.

Currently I use this code to connect each client to the main program...
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
public void run(){ 
   while(true){
      try{
         //Find next free Conn number
         setConn();
         nt1[Conn] = new NetConn(serverSocket.accept(), Conn);
         
      }catch(IOException e){
         System.out.println(e);
      }

      try {
         t.sleep(10);
      } catch (InterruptedException e) {
         System.out.println(e);
         stop();
      }
   }
}


This creates multiple threads and assigns each a variable I can use in the main program for passing data back and forth.

If I wanted to use 1 thread, this try loop would catch a connecting client and open a socket between that client and the existing thread that is already there. The problem is, I have no idea how to do this. Anyone have any pointers on this?

Any help would be greatly appreciated!

Life is just a game, learn to play!
------------------------------------------
╬-YellzBellz Games!-╬ Cheesy
Online Riven
« League of Dukes »

JGO Overlord


Medals: 742
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #1 - Posted 2009-04-04 19:09:03 »

When you want your networking in one thread, you're only option is java.nio (or some framework based on that).

NIO is basically a can of worms, compared to plain old Socket/ServerSocket.

I'd highly recommend you not to switch to NIO, maybe look around for more highlevel frameworks (like JGN or MINA). IMHO it's best to just make it work with java.io and learn from it.

It all those threads make you feel uncomfortable, simply pass all your received data in 1 'global inbound queue', that is drained by 1 thread. Also put all data you intend to write in an 'outbound queue' per connection.

Now you have the benefits of an easy to grasp networking API, with the simplicity of 1 thread that handled all networking data.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline Xyle
« Reply #2 - Posted 2009-04-05 05:31:03 »

Thank you very much! Exactly the information I needed to know. I really appreciate the help there!

Thank you!

Life is just a game, learn to play!
------------------------------------------
╬-YellzBellz Games!-╬ Cheesy
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

ctomni231 (37 views)
2014-07-18 06:55:21

Zero Volt (35 views)
2014-07-17 23:47:54

danieldean (28 views)
2014-07-17 23:41:23

MustardPeter (31 views)
2014-07-16 23:30:00

Cero (46 views)
2014-07-16 00:42:17

Riven (47 views)
2014-07-14 18:02:53

OpenGLShaders (36 views)
2014-07-14 16:23:47

Riven (36 views)
2014-07-14 11:51:35

quew8 (32 views)
2014-07-13 13:57:52

SHC (68 views)
2014-07-12 17:50:04
HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
java-gaming.org 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‑gaming.org
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!