telegraph
_ _ _
| |_ ___| | ___ __ _ _ __ __ _ _ __ | |__
| __/ _ \ |/ _ \/ _` | '__/ _` | '_ \| '_ \
| || __/ | __/ (_| | | | (_| | |_) | | | |
\__\___|_|\___|\__, |_| \__,_| .__/|_| |_|
|___/ |_|
Terminal P2P messenger implemented in C.
This project was created for education purposes.
** WORK IN PROGRESS **
DEFAULTPOST: 1858
Features:
- Basic messaging
- Minimalistic text/terminal based UI
- P2P connection between clients
- SSL/TLS e2e encryption
Build requrements:
- C compiler with standard library,
gcc
for example gnutls
Links to read for developing:
- Simple UDP multicast example in C
- Изучая go: пишем p2p мессенджер со сквозным шифрованием
- Analysis of P2P: How to communicate between two terminals without public IP?
- TCP hole punching
- Peer-to-Peer Communication Across Network Address Translators
- Traversal Using Relays around NAT
- Simple threadpool implementation
- Building from different source folders to different target folders
- passing a struct over TCP (SOCK_STREAM) socket in C
- A simple UDP-based NAT hole punching example for C
- Peer-to-Peer Programming
- Resources for Developing P2P Protocols across NAT
- Developing P2P Protocols across NAT
- Hole Punch: UDP NAT Punching
- UDP Hole Punching Proof implementations
- UDP Hole Punching Examples
Links to watch for developing:
- Creating a Peer to Peer Network in C
- Multithreading with a Thread Pool in C
- About byteorder
- Peer-to-peer (P2P) Networks - Basic Algorithms
- Introduction to Decentralized P2P Apps
- How to write a multithreaded server in C (threads, sockets)
- Multithreaded Server Part 2: Thread Pools
- How to write a multithreaded webserver using condition variables (Part 3)
- How one thread listens to many sockets with select in C.
- Safety and Speed Issues with Threads. (pthreads, mutex, locks)