An open API service indexing awesome lists of open source software.

https://github.com/torxed/raw_udp_chat_client

The most useless chat client you'll ever need. A raw socketed, peer-to-peer, UDP building, "chat" client.. It's a mess!
https://github.com/torxed/raw_udp_chat_client

Last synced: about 2 months ago
JSON representation

The most useless chat client you'll ever need. A raw socketed, peer-to-peer, UDP building, "chat" client.. It's a mess!

Awesome Lists containing this project

README

        

# raw_udp_peer-to-peer_ncurses_chat_client

The most useless chat client you'll never need.

A raw socketed, peer-to-peer, home-brew UDP building, ncurses based - "chat" client..



It's a mess! You're a fool for using it!


# But why?

As far as overengineering something goes, this is my prime project!

I needed a chat application for me and a friend (who sits in the same room),

I tried setting up a broadcast UDP socket, for whatever reason that didn't work

due to UDP binding to a socket still assumes server/client roles.



So I tried shared memory between processes, turns out writing to `/dev/mem` randomly

wasn't such a great idea anywhere really. A few system-crash:es later.. I scrapped that..



So what about a database you might ask? Meh.. Don't want something clunky ruining my Feng Shui!

"But surely a server software to relay messages would be better?" - Sceptics... Pff.. Who needs those..



So I did what any bored engineer with curiosity would do (who am I kidding),

I based a interface on `ncurses`, then I created a raw socket without any automated headers,

I then recieved, unpacked and displayed whatever comes in on localhost:5554.

Finally I built the most ugly UDP builder ever to send out messages on the same interface and port

making sure the checksum going out (Which will be detected in a second) is blocked from replaying in the interface.



And there you have it, a peer-to-peer, raw UDP, chat client for localhost!



I'm out of here!