Advertisement

05.08.2008 at 05:37PM PDT, ID: 23388135 | Points: 500
[x]
Attachment Details
Java client server problem, refreshing nickname list
Tags: Sun, Java, Java
I'm creating a client, server application. When the server has been started users can connect to it. On connection they use the following protocol. (pseudocode)

Send to server "AUTH"
Send credentials to server.

When a users comes online, the server should do the following

for each client on the server
    SEND to client "LIST"
    SEND to client; list of online users
end for

I kinda got it working but i still have a huge problem, for some reason the list of online clients doesn't change. For example, the first user will always recieve a list containing one client. It's hard to explain, i've uploaded my entire project on my webspace and you'll notice the problem when you use it (it's a small project). First run "worldofpokerserver" and then run several client instances, the problem is shown by the JOptionPane containing the recieved "online users".

Source code uploaded @ http://users.pandora.be/fa7c0n/World%20Of%20Poker.zip

Please help me, i'm building this for a school project and it needs to be finished in a few days...

Thanks in advance.
Start your free trial to view this solution
Question Stats
Zone: Programming
Question Asked By: ikjop
Question Asked On: 05.08.2008
Participating Experts: 2
Points: 500
Views: 0
Translate:
Loading Advertisement...
05.08.2008 at 11:02PM PDT, ID: 21530641

Rank: Master

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
05.09.2008 at 04:09AM PDT, ID: 21531644

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
05.09.2008 at 04:49AM PDT, ID: 21531831

Rank: Master

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
05.09.2008 at 06:32AM PDT, ID: 21532549

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
05.09.2008 at 07:45AM PDT, ID: 21533353

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
05.09.2008 at 08:16AM PDT, ID: 21533700

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
05.09.2008 at 08:28AM PDT, ID: 21533853

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
05.09.2008 at 03:04PM PDT, ID: 21536650

All comments and solutions are available to Premium Service Members only.

Start your 7 day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
Microsoft
  • Internet Protocols
  • Applications
  • Development
  • OS
  • Hardware
  • Windows Security
Apple
  • Operating Systems
  • Hardware
  • Programming
  • Networking
  • Software
Internet
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Spy / Ad Blockers
  • Web Browsers
  • New Net Users
  • Web Development
  • Chat / IM
  • Anti Spam
  • Web Servers
  • Anti-Virus
  • Email Clients
Gamers
  • Tips
  • Online / MMORPG
  • Puzzle
  • Emulators
  • Action / Adventure
  • Role Playing
  • Consoles
  • Game Programming
  • Strategy
  • Sports
  • Misc
  • Computer Games
Digital Living
  • Hardware
  • New Net Users
  • New Users
  • Software
  • Digital Music
  • Gaming World
  • Home Security
  • Apple
  • Networking Hardware
Virus & Spyware
  • Vulnerabilities
  • IDS
  • Encryption
  • Anti-Virus
  • Operating Systems Security
  • Software Firewalls
  • WebApplications
  • Cell Phones
  • Operating Systems
  • Internet
  • Hardware Firewalls
Hardware
  • Handhelds / PDAs
  • Displays / Monitors
  • Components
  • Networking Hardware
  • Peripherals
  • Laptops/Notebooks
  • Storage
  • Servers
  • Desktops
  • New Users
  • Misc
  • Apple
Software
  • System Utilities
  • Industry Specific
  • Network Management
  • Photos / Graphics
  • Page Layout
  • VMWare
  • Misc
  • Web Development
  • OS
  • CYGWIN
  • Voice Recognition
  • Message Queue
  • Quality Assurance
  • Security
  • Firewalls
  • MultiMedia Applications
  • Development
  • Database
  • Office / Productivity
  • Business Management
  • OS/2 Apps
  • Server Software
  • Internet / Email
ITPro
  • OS
  • Storage
  • Encryption
  • Operating Systems Security
  • Apple Hardware
  • Laptops & Notebooks
  • Servers
  • Networking Hardware
  • Peripherals
  • Devices
  • Displays / Monitors
  • WebTrends / Stats
  • Search Engines
  • Firewalls
  • WebApplications
  • IDS
  • Vulnerabilities
  • Email Clients
  • File Sharing
  • Spy / Ad Blockers
  • Web Browsers
  • Web Servers
  • Networking
  • Anti-Virus
  • Chat / IM
  • Anti Spam
Developer
  • Web Servers
  • Web Browsers
  • Game Programming
  • Dev Tools
  • Industry Specific
  • Office / Productivity
  • Database
  • CYGWIN
  • Web Development
  • Search Engines
  • File Sharing
  • WebTrends / Stats
  • Programming
  • Content Management
  • Application Servers
  • Protocols
Storage
  • Removable Backup Media
  • Storage Technology
  • Servers
  • Grid
  • Remote Access
  • Backup / Restore
  • Misc
  • Hard Drives
OS
  • Miscellaneous
  • Security
  • Development
  • Linux
  • VMWare
  • MainFrame OS
  • Unix
  • Apple
  • OS / 2
  • AS / 400
  • BeOS
  • Microsoft
  • VMS / OpenVMS
Database
  • Oracle
  • Miscellaneous
  • MySQL
  • Software
  • Sybase
  • Contact Management
  • PostgreSQL
  • Data Manipulation
  • Clarion
  • InterSystems Cache
  • Siebel
  • MUMPS
  • OLAP
  • SQLBase
  • SAS
  • GIS & GPS
  • 4GL
  • Berkeley DB
  • DB2
  • Informix
  • Interbase / Firebird
  • FoxPro
  • Reporting
  • LDAP
  • Filemaker Pro
  • MS SQL Server
  • dBase
  • MS Access
Security
  • Misc
  • Web Browsers
  • Software Firewalls
  • Operating Systems Security
  • File Sharing
  • Spy / Ad Blockers
  • Vulnerabilities
  • WebApplications
  • IDS
  • Anti-Virus
  • Encryption
  • Anti Spam
  • Email Clients
  • VPN
  • Chat / IM
Programming
  • Editors IDEs
  • Installation
  • Handhelds / PDAs
  • Multimedia Programming
  • System / Kernel
  • Algorithms
  • Game
  • Signal Processing
  • Project Management
  • Open Source
  • Database
  • Misc
  • Languages
  • Processor Platforms
  • Theory
Web Development
  • Scripting
  • Blogs
  • Web Servers
  • Software
  • Search Engines
  • Web Graphics
  • Images
  • Internet Marketing
  • Images and Photos
  • Components
  • Document Imaging
  • Web Languages/Standards
  • Illustration
  • WebApplications
  • Fonts
  • WebTrends / Stats
  • Authoring
  • Digital Camera Software
  • Miscellaneous
Networking
  • Protocols
  • Apple Networking
  • Network Management
  • Message Queue
  • Application Servers
  • Content Management
  • File Servers
  • Email Servers
  • Misc
  • Java Editors & IDEs
  • Wireless
  • Networking Hardware
  • Backup / Restore
  • System Utilities
  • ISPs & Hosting
  • Web Servers
  • Storage Technology
  • Removable Backup Media
  • Servers
  • Broadband
  • Grid
  • OS / 2
  • Novell Netware
  • Unix Networking
  • Windows Networking
  • Security
  • Telecommunications
  • Operating Systems
  • Linux Networking
Other
  • Community Advisor
  • Lounge
  • Community Support
  • New Net Users
  • Philosophy / Religion
  • Math / Science
  • Miscellaneous
  • URLs
  • Expert Lounge
  • Politics
  • Puzzles / Riddles
Community Support
  • Suggestions
  • New to EE
  • New Topics
  • Community Advisor
  • CleanUp
  • Announcements
  • General
  • Feedback
  • Input
  • EE Bugs
 
05.08.2008 at 11:02PM PDT, ID: 21530641

Rank: Master

Make sure you don't create different instances of this list.
 
05.09.2008 at 04:09AM PDT, ID: 21531644
Am I creating different instances of this ? I don't see where?
 
05.09.2008 at 04:49AM PDT, ID: 21531831

Rank: Master

Please post only relevant code.
 
05.09.2008 at 06:32AM PDT, ID: 21532549
Ok here you go
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
// CLIENT THREAD RUN
 
 @Override
    public void run(){
 
            
        try {
            
            //wachten op inkomende message
            boolean stop = false;
        
            while(!stop) {
 
                Object messageObject = istream.readObject();                
          
                 
                   if(messageObject instanceof String){
                       String s = (String) messageObject;
                       if (s.equals("LIST")){
                             messageObject = (Vector) readObject();
                             JOptionPane.showMessageDialog(frmTheMainForm,"Message: " + (Vector<Speler>) messageObject);
                             frmTheMainForm.fillUpPlayerList((Vector<Speler>) messageObject);
                        }
                   }
            }
        
            
        } catch(IOException ex){
            ex.printStackTrace();
        }  catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (link != null){
                    //stap 5: connectie sluiten (gebeurt nu door clienthandler)
                    ostream.writeObject("QUIT!!!");
                    link.close();
                }
            }
            
            catch(IOException e){
                e.printStackTrace();
            }  
      } 
    }
 
// PLAYER CREATED
 
    public PokerPlayerConnection(Socket link, cPokerServer server){
        this.link = link;
        this.server = server;
 
        
        clientID = aantalClientHandlers;
        aantalClientHandlers++;
       //Connection made
        
        try {
            //input & output kanalen
            ostream = new ObjectOutputStream(link.getOutputStream());
            istream = new ObjectInputStream(link.getInputStream());
            
            
            
            for(PokerPlayerConnection tmpPlayer : server.getClientHandlers()){
                server.frmMain.addGeneralLogEvent(tmpPlayer.getThisPlayer().getPassIdentiteitskaart().getSNickname() + " was contacted");
                tmpPlayer.sendObject("LIST");
                tmpPlayer.sendObject(server.getActivePlayers());
                server.frmMain.addGeneralLogEvent(server.getActivePlayers().toString());
            }
        } catch (IOException ex){
            ex.printStackTrace();
        }
        
  
    }
Open in New Window
 
05.09.2008 at 07:45AM PDT, ID: 21533353
OK, so you have a number of players, some of which may be offline, is that correct?

Then you connect using a client, and this client gets the number of online (active) players, is that correct?

Then the first one to connect would only get him/herself back as active player I presume.

If this is all wrong, you may have to explain your situation more clearly. Don't assume we've got as much insight in the problem field as you do.

Also, you've posted the client code, but I presume the same problem is in the logging which you've added? If yes, the client code is not relevant, please post the handling of the server object and the getActivePlayers() method instead.
 
05.09.2008 at 08:16AM PDT, ID: 21533700
I've posted the full source code (client & server) at http://users.pandora.be/fa7c0n/World%20Of%20Poker.zip the exact problem can't be any more visible then there (i've added dialog windows to illustrate the problem).
 
05.09.2008 at 08:28AM PDT, ID: 21533853
You only seem to add active players when they connect. You never use setActivePlayers. How should the server know about other players than the ones that are either already connected, or those who are just connecting?
 
05.09.2008 at 03:04PM PDT, ID: 21536650
Ok but the server does know what players are connecting, he sends "a list of players" to all the players, the only problem is that he screws up the list. Player one only recieves ONE player (himself), the second player recieves the first player and himself, the third player recieves the first, second and third player. This looks fine but the change for the first player keeps containing only one player. Only the last player has a complete list. I really don't understand why this is happening...
 
 
20080236-EE-VQP-29 / EE_QW_2_20070628