ChatDev is a chat protocol and command line client for sending text communications, written in Python.  I coded ChatDev for my second semester of Computer Science Research Seminar at Connecticut College.  During this research period, I took an in-depth at how chat protocols, specifically XMPP, facilitate communication between users by utilizing socket connections, a centralized multithread server, and peer-to-peer messaging.
The multi-threaded server receives connections from clients, and stores their information in a database containing the users’ profile.  Then it regularly checks the users' presence, and updates online users with a list of online clients.
The multi-threaded client sends login data to the server, indicating its online presence.  It then waits to receive data from other clients, or send data to other clients, via a P2P interface.  The client software utilizes a command line-style UI.
The ChatDev code is available via GitHub at
Back to Top