Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
CSE 3461 Computer Networking and Internet Technologies
• In this assignment you will transform your existing chat program into a decentralized chat application.
• You may reuse as much of your project 1 code as you wish. You may rewrite everything if you wish as well. Feedback from project 1 assessment can be used to help improve your project 2 code and report.
• The basic operation and protocol from project 1 will be the same in project 2,however instead of a client and server there will be only one process which we will call a peer. The peer will act as both a client and a server in the decentralized system.
• The intended operation of the chat peer is described in this slide set.
• You are required to also implement one extended feature as described next.
As well as the base protocol that everyone must implement, each group must choose one extended feature from the list of three choices below,design the protocol as an extension to the base protocol and implement in their peer:
• Room Migration – Rooms can be moved from one peer to another. E.g. before a peer quits it can send its rooms to other peers. All peers that are currently in those rooms should automatically disconnect and reconnect to the room when it has been relocated. The peer that receives a room becomes the owner of that room. Selection of which peers to send rooms to should be based on ensuring that all existing peers in those rooms can connect to the new peer where their room is migrated to. Rooms should not become “lost”, e.g. if the peer that is receiving a room also quits in the middle of receiving it and therefore does not migrate it further. Of course, if there are no neighboring peers to migrate a room to then the room is lost if the peer quits. The user of a peer should also be able to issue a command to migrate a room on a room-by-room basis.