Repository navigation
Expand file tree
/
Copy pathREADME
More file actions
30 lines (21 loc) · 1.77 KB
/
Copy pathREADME
File metadata and controls
30 lines (21 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
This includes both OSI and TCP/IP models theory, internals of HTTP protocol, and Python networking libraries (socket, httplib, urllib, requests etc).
For this task you need to create a simple Skype-like REST chat web service and a client for this.
A server application need not keep state in some storage, it is enough to keep it in memory for simplicity.
A REST protocol should allow to:
- Register a new named client (user);
- Create, enter, delete a chat room;
- Post, update, delete messages into a specific chat room;
- Get messages for a chat room (all or only updates since the last known state);
Please, develop a simple *nix client-server application in Python that imitates sending short news messages from multiple contributors to a single server. The application has the following requirements.
Server must:
· Listen on multiple ports simultaneously (configurable) to process messages from multiple clients at the same time;
· Support multiple message transmission protocols (TCP and UDP for now, but easily extendable for other protocols; UDP may be implemented as stubs that don’t do anything);
· Write down each incoming message to a log (together with all significant info about this message) and send delivery confirmation back to the client.
Client must:
· Have a possibility for user to enter:
o Server IP/port;
o The message to be sent;
o Protocol to use to send each message (TCP or UDP; UDP may be implemented as stubs that don’t do anything);
· Output the information about all sent messages and their delivery status;
· If a server is not reachable at the moment of sending a client should retry sending the message.
A nice-to-have feature is a command-line user interface.