Web Browser and IM - Description
This project was my first attempt at networking. It originally had three functions: a simple web-browsing client, a simple IM client, and crashing. The program used basic sockets and was written in Java.
The browser client allowed the user to type in an address and a server request. Both are required to load a page. For example, to load "www.google.com", the user would type google's address in the address field, and "GET" in the request field. Connecting would then send a "GET" request to Google. The contents of the page would then show up in the pane to the right. There was no formatting or HTML parsing, so the raw contents of the page are displayed.
The instant messenger client allowed the user to send instant messages to other users running the client. The user would type the address of the recipitent somewhere. Either that or it would designate a running instance of the client to be the server. I forgot. Eventually with enough configuration, users could send instant messenges to each other.
Users had the option to terminate execution of the program by pressing the button labeled, "Crash". Doing so would first cause a large number of error boxes to cascade onto the screen, and then the error boxes would bounce around the desktop before eventually falling off the screen due to gravity. The main application window would then start bouncing around the desktop with gravity until it eventually fell through the bottom of the desktop bounds due to floating point errors induced in the calculation of the bouncing and gravity. The user would then have to terminate the program via the task manager.
Prior to connecting to anything with the program, the user is required to select a proxy server or some IP or something. I vaguely recall this IP to be the IP the program is running on, or something. In the end, the purpose of this was to give the program the knowledge it needed to circumvent the firewall and security running on the computers in the highschool library. I don't remember what it needed to do or why it needed to do it or how I came up with the solution, but I got into a lot of trouble with the IT adminstration eventually.
I don't remember what most of the other buttons do, but it's possible I put them there so that the UI would be symmetric.
2006 - Junior year of highschool.
JAR executable download link: (insert link here)