Skip to content

Chat application built in Golang 1.13 that utilizes a custom binary protocol over tcp sockets

License

Notifications You must be signed in to change notification settings

Mecope1/tin-can-communicator

Repository files navigation

Tin Can Communicator

Command line chat app built in Golang 1.13 with tcp sockets and a custom binary protocol.

Currently a work in progress.

Features

  • Chat with other people using the command line!
  • 256 Chat rooms available. (numbered 0-255)
  • 200 character limit per message
  • Chat messages are only broadcast to members of the same chat room.
  • Utilizes a TLV style binary protocol to encode and decode messages.

Basic Usage

Server

  1. Build and run the executable using go run config.go -mode=server -port=####
  2. When you want to stop the server, simply press ctrl+c. (This will disconnect all clients immediately!)

Client

  1. Build and run the executable using go run config.go -mode=client -address=your.address.goes.here:####
  2. Enter a username (3+ characters).
  3. Enter a desired chat room number (0-255).
  4. Chat!
  5. When you're finished, simply press ctrl+c or the escape key to quit.

Extra Repos

Here are some other repositories that I created to test out new libraries, or explore some concepts

To Do

  • Add in additional tests
  • Make error handling even more robust
  • Allow users to easily join a different room
  • Integrate a database to store chat logs
  • Setup auth system, allowing persistent users
  • Allow users to send requests to my unit-converter api/ web app from the chat app

References

These are places that I had read from and that I found very helpful in building this.

About

Chat application built in Golang 1.13 that utilizes a custom binary protocol over tcp sockets

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages