|View of the sourceforge page of the project|
Under the hood:
- Netbeans IDE 7.1
- Swing API
Flow of control:
- Client app sends a message to a server listening on a specified port containing the Username and the message typed by the user.
- Server app receives the message and adds it to a string in a specified way of formatting or performs a special action if requested.
- Server app then sends the string to the Client app to display it in the chat-box.
- cmd_delchat sets the messages string to "" or simply speaking, deletes the messages.
- cmd_gettime returns the time on the server or host machine.
- cmd_uptime returns the time at which the server was started.
- cmd_getmsg returns the number of messages sent in the session.
- cmd_getmsgcur returns the messages sent since last cmd_delchat command.
- cmd_online returns the number of online users.
- cmd_disconnect is to display a message that the specified user has gone offline.
- cmd_connect is to display a message that the specified user has come online.
- refresh is used to refresh the chat-box.
Bugs and problems:
- The Server app becomes unresponsive to input once the "Start server" button is pressed. Then it only acts to the thread that implements the networking commands. It has to be exited forcefully to shut down the server.
- There have been occurrences when the client is unable to connect to server and it hangs. It happened when either the port number or the password was incorrect.
- I have not been able to add an automatic refresh function. Now any movement of the mouse is able to refresh the screen but there is not an automatic way for it
- Sending messages by pressing the enter key has not been possible for me yet. So I added a button and an alternative way, press "\" followed by any key.
- At times, if a client tries to connect to the server with a wrong password, the server also becomes unresponsive to other clients.
This is to all the Java programmers out there, please help us develop this project further and remove these bugs and problems. Also, any new feature that you'd like to have in this program, you are free to do. The source code is also available on the sourceforge project page. All help is appreciated. Going of to code some more guys! Hope to hear from you, dear reader!