Thursday, November 15, 2012

Network Programming Projects

The list of projects available is as follows:

  • POP3 client: that shows the list of messages available in a mailbox.
  • Redundant transmission: UDP data is sent twice to different ports to improve reliability
  • HTTPdownloader: creates a copy on your local filesystem of a given webpage.
  • Netcat: It is java-based clone of the nc command we have used in the lab.
  • MyLittleBitly: It is a url shrinker and redirector server.
  • Enable Wifi: It controls the enabling and disabling of your home wireless router.
  • HTTPproxy: It is basic proxy server.
  • Binary file dropbox: It receives binary files from clients and stores them in the filesystem.
  • scannerPlus: It is a basic port-scanning tool (using it in Finland is a felony).
  • TCPsensor: It is a tool for checking whether servers are alive or not.
  • Webcam grabber: It is a tool that will download images from a public webcam every few minutes.
You can get a file with the specifications of all the projects from our file repository. Projects can be developed individually or by a group of two people. Public presentation during the last two lab sessions of the lab is a must if you want to opt to the highest mark, peer assessment will be used then.

As I mentioned in the classroom, I am open to other proposals from you regarding personal projects you have been doing. Please note you need me to agree on your proposal before proceeding with it.

Reminder

Remember: this Friday we will have test in the classroom reviewing Chapter 2 concepts (mostly HTTP, SMTP, POP3 and DNS). It will be a short test.

Monday, November 12, 2012

Fourth lab

This lab is about iterative (aka sequential) TCP servers. You will learn how you can create server using SeverSocket class and what the basic structure of a sequential server is.

Iterative servers are those that only handle one client at a time (a bit like a shop attendendant). If two (or more) clients connect to the same server, only one will be serviced while the remaining clients wait for the former to be serviced. Once the server finishes serving one client, it will proceed with the next one.