A simple real-time chat application built with Dart using TCP sockets. It allows multiple clients to connect to a central server and exchange messages concurrently.
- TCP server listening on port 4040
- Multiple clients can join simultaneously
- Messages are broadcasted to all connected clients
- CLI-based interaction
- Type
exit
to leave chat gracefully
chat_application/
│
├── bin/
│ ├── chat_server.dart // Server code
│ └── chat_client.dart // Client code
dart run bin/chat_server.dart
dart run bin/chat_client.dart
Enter server IP (default 127.0.0.1
) and choose a username.
Type messages and they will appear in all connected clients.
Type:
exit
Server:
Chat server running on port 4040...
New client connected: 127.0.0.1:60512
Received: Emeks: Hello everyone!
Received: Chuks: Hi Emeks!
Client 1 (Emeks):
Enter server IP (default 127.0.0.1):
Enter your username: Emeks
Connected to chat server at 127.0.0.1:4040
Emeks: Hello everyone!
Chuks: Hi Emeks!
Client 2 (Chuks):
Enter server IP (default 127.0.0.1):
Enter your username: Chuks
Connected to chat server at 127.0.0.1:4040
Emeks: Hello everyone!
Chuks: Hi Emeks!
- TCP sockets (
ServerSocket
,Socket
) - Async I/O with streams (
listen
) - Broadcasting messages to multiple clients
- Concurrent CLI interaction
- Add private messaging between clients
- Add user join/leave notifications
- Implement chat history persistence