TCP-Chat is a retro-inspired, colorful group chat server written in Go.
Connect with friends in real time, enjoy a modern terminal experience, and relive the classic chatroom vibe!
- 👥 Multi-Client Support: Up to 10 concurrent connections. Unique username required for each participant
- 🎨 Colorful Interface: Retro-dark mode with distinct colors for different message types and for server commands
- 📝 Chat History: New users see previous chat history on join
- 🔄 Dynamic Usernames: Change names with simple commands
- 📊 Activity Logging: All events saved to
server.log
- 🖥️ TUI Client: Modern terminal UI client included (optional).
.
├── main.go # Entry point (server & TUI client launcher)
├── tui.go # Terminal UI client
├── server/ # Server package
│ ├── client.go
│ ├── connections.go
│ ├── handlers.go
│ ├── message.go
│ ├── server.go
│ └── utils.go
├── build.sh # Build script
├── go.mod
├── go.sum
└── ReadMe.md
-
Build the Server
./build.sh
-
Start the Server
./TCPChat # Default port 8989 # or ./TCPChat 2525 # Custom port
-
Connect as Client
nc localhost 8989
-
Connect with the TUI Client
./TCPChat -tui
/name NewUsername
// Regular chat message
[YYYY-MM-DD HH:MM:SS][Username]: Message
System messages (join/leave/rename) are shown in color.
Username has joined our chat...
Username has left our chat...
Created with passion by Zone01 students:
Vicky Apostolou, Iana kopylova, Kostas Apostolou
Made with 💚 at Zone01