ChatWhileWatching is an online movie watching application which allows clients to watch diverse movies in different rooms and chat with people who are in the same room. Clients can use either UDP or TCP to exchange messages with the server. While sending a reply, the server MUST use the same layer for protocol used by the client for the corresponding request.
This application is derived from a course project of Networking whose purpose was to in Telecom Bretagne(which was merged as IMT Atlantique). The ChatWhileWatching(C2W) is based on the Sibly application. We students work in a group @JieDiscovery and Chaochen_MA] to implement the client and server protocol for the different versions (UDP/TCP, text/binary) in order to familiarize ourselves with protocol architecture.
Sibyl is a very simple application: the client sends a request (a question) to the server that sends a response. The server and the client have a structure similar to the c2w server and client.
Detailed explanation (written by @Alberto Blanc, Christophe Couturier, Jean-Pierre Le Narzul, Gwendal Simon) which illustrates how to start the Sibyl server and the Sibyl client, etc could be referred here.
TCP/IP protocol is implemented to data transmission between client and server to ensure reliable delivery of data or reliable notifications of failures.
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly referred to as TCP/IP.
@source: Wikipedia of TCP
The User Datagram Protocol (UDP) is connectionless. UDP is suitable for purposes where error checking and correction are either not necessary or are performed in the application.
@source: Wikipedia of UDP
To give a brief introduction of the protocol implemented to this application, you could refer to the slides which present the background and the formats of messages.