Assignment: Network Programming
Assignment:
Build a chat programme using socket level programming. This can be done at various levels of sophistication and the marks available at each level are indicated below.
Tutorials
The tutorials are intended to support you in developing the code for your assignment. They will emphasise the use of C# but will also provide some help with other languages, though they are not intended to be a comprehensive course. Please do consult the tutor if you have any question about what is expected. You are advised to do this early because the tutorials finish by the end of November.
Basic (Synchronous) Chat System
Two programs are required, a client and a server, though both are interactive and allow the user to enter text that is sent to the other program. No threads are needed and users have to wait for a reply before they can send the next message.
The code at this level can be written in C#.
Option to allow file Transfer
This part would build upon the basic chat system and allow an option whereby a user can send a file to the other user.
Other Languages
Use programming languages other than C#. Firstly, you can write both client and server in your chosen language, but more marks are available if the two programs are written in different languages from each other.
The languages that you might use include Python, Java, C, C++.
Threading
Make use of threads and asynchronous sockets to enable a user to send/receive multiple messages before getting/sending a reply.
Some marks are also available if this is done using a different language.