| | |
creating an instant messenger program in java
![]() |
Hey Everyone,
This is my first post. Recently, I have been working on an instant messenger program in java. I have created the networking part of the client, and I have almost finished the server side. I know the program works and I am allowed to send messages, but now I am thinking about adding a feature that lets the user see who else is connected to the server, but i can not think of how to do this. Anyone have any ideas?
This is my first post. Recently, I have been working on an instant messenger program in java. I have created the networking part of the client, and I have almost finished the server side. I know the program works and I am allowed to send messages, but now I am thinking about adding a feature that lets the user see who else is connected to the server, but i can not think of how to do this. Anyone have any ideas?
•
•
Join Date: Mar 2005
Posts: 53
Reputation:
Solved Threads: 1
Do you intent to allow the client A to see all the other clients who are logged in .
I think you should use broadcast from the server to clients whenever a new client gets added or leaves. The server must already be maintaing the list of clients.
Also whenever the new client gets added , the server should send him the list of all logged clients.
cheers,
aj.wh.ca
I think you should use broadcast from the server to clients whenever a new client gets added or leaves. The server must already be maintaing the list of clients.
Also whenever the new client gets added , the server should send him the list of all logged clients.
cheers,
aj.wh.ca
I do want all other clients to see who is logged in. I was originally thinking that I would save all names to a linked list... but the problem I am having is that I can not figure out how I am going to send the username to the server from the client, and then I can't figure out how to get the server to conitinuousely update who has logged in/off and then send the list back to the client.
•
•
Join Date: Mar 2005
Posts: 53
Reputation:
Solved Threads: 1
•
•
•
•
Originally Posted by stupidenator
I do want all other clients to see who is logged in. I was originally thinking that I would save all names to a linked list... but the problem I am having is that I can not figure out how I am going to send the username to the server from the client, and then I can't figure out how to get the server to conitinuousely update who has logged in/off and then send the list back to the client.
As per your saying -- "I can not figure out how I am going to send the username to the server from the client".
I really do not understand what is the problem in this. If you are implementing some thing like yahoo messenger then the very first step from your client to server would be authenticating the user name.
I think I could help more if you specify more details. And what exactly you looking for -- code , logic, idea ?
Here is the code for my server program.
Java Syntax (Toggle Plain Text)
import java.io.*; import java.net.*; import java.util.*; public class Server { ArrayList clientOutputStreams; public void go() { clientOutputStreams = new ArrayList(); try { ServerSocket serverSock = new ServerSocket(4999); while (true) { // set up the server writer function and then begin at the same // the listener using the Runnable and Thread Socket clientSock = serverSock.accept(); PrintWriter writer = new PrintWriter(clientSock.getOutputStream()); clientOutputStreams.add(writer); // use a Runnable to start a 'second main method that will run // the listener Thread listener = new Thread(new ClientHandler(clientSock)); listener.start(); System.out.println("got a connection"); } // end while } // end try catch (Exception ex) { System.out.println("error making a connection"); } // end catch } // end go() public class ClientHandler implements Runnable { BufferedReader reader; Socket sock; public ClientHandler(Socket clientSocket) { // new inputStreamReader and then add it to a BufferedReader try { sock = clientSocket; InputStreamReader isReader = new InputStreamReader(sock.getInputStream()); reader = new BufferedReader(isReader); } // end try catch (Exception ex) { System.out.println("error beginning StreamReader"); } // end catch } // end ClientHandler() public void run() { String message; try { while ((message = reader.readLine()) != null) { System.out.println("read" + message); tellEveryone(message); } // end while } // end try catch (Exception ex) { System.out.println("lost a connection"); } // end catch } // end run() } // end class ClientHandler public void tellEveryone(String message) { // sends message to everyone connected to server Iterator it = clientOutputStreams.iterator(); while (it.hasNext()) { try { PrintWriter writer = (PrintWriter) it.next(); writer.println(message); writer.flush(); } // end try catch (Exception ex) { System.out.println("error telling everyone"); } // end catch } // end while } // end tellEveryone() } // end class Server
•
•
Join Date: Mar 2005
Posts: 53
Reputation:
Solved Threads: 1
OK I see your code. But as far as I understand you have not implemented any user mechanism in your server. So basically any once with the client program can connect to your server. Now coming back to your requirement for "a feature that lets the user see who else is connected to the server" you must implement a user name based feature so that when the client sends a connection request to your server, it must authenticate using a unique id. Otherwise with current approach all you can tell your clients is which all IP Address are live at a particular moment.
•
•
Join Date: May 2005
Posts: 2
Reputation:
Solved Threads: 0
dear,
if you have made the messenger program in java. please send it to me i need it. i need it as soon as possible,thanks,
please e-mail it to me at my e-mail adress <email snipped>
i shall be very grateful to you for this.
if you have made the messenger program in java. please send it to me i need it. i need it as soon as possible,thanks,
please e-mail it to me at my e-mail adress <email snipped>
i shall be very grateful to you for this.
Last edited by Ancient Dragon; Feb 1st, 2007 at 9:57 pm. Reason: email snipped
![]() |
Other Threads in the Java Forum
- Previous Thread: Needs Brainstorming!!!
- Next Thread: school task help
| Thread Tools | Search this Thread |
account android applet application apps array automation awt bidirectional binary birt bluetooth businessintelligence busy_handler(null) card class classes client code collision columns component constructor database designadrawingapplicationusingjavajslider draw eclipse error eventlistener exception expand fractal free game givemetehcodez graphics gui guidancer homework html ide image inheritance integer integration intellij j2me java javafx javamicroeditionuseofmotionsensor javaprojects jlabel jme jni jpanel jtextfield jtree julia linux loop method midlethttpconnection migrate mobile mobiledevelopmentcreatejar monitoring myaggfun netbeans newbie nullpointerexception open-source oracle plazmic print problem program property ria scanner server set sharepoint smart sms smsspam sourcelabs splash sql sqlite subclass support swing testautomation textfield threads tree trolltech unlimited utility windows





