Linux Network Programming in Modern C++

Linux Network Programming in Modern C++

Starter code for network programming in the Linux environment, providing wrapper classes written in modern C++ (C++20) for TCP and UDP sockets, the epoll API for nonblocking I/O, etc.

Adapted from the Puffer codebase with refactored APIs.

Building

./autogen.sh
./configure
make -j

TCP examples

cd src/examples
./tcp_echo_server <server_port>
./tcp_toy_client <server_ip> <server_port>
./tcp_epoll_client <server_ip> <server_port>

UDP examples

cd src/examples
./udp_ack_server <server_port>
./udp_toy_client <server_ip> <server_port>
./udp_epoll_client <server_ip> <server_port>
Owner
Francis Y. Yan
Senior Researcher at Microsoft Research Redmond
Francis Y. Yan
Similar Resources

A cheatsheet of modern C++ language and library features.

C++20/17/14/11 Overview Many of these descriptions and examples come from various resources (see Acknowledgements section), summarized in my own words

Nov 24, 2022

Pangea Software's Mighty Mike (Power Pete) for modern systems

Pangea Software's Mighty Mike (Power Pete) for modern systems

Mighty Mike (a.k.a. Power Pete) This is Pangea Software's Mighty Mike updated to run on modern systems. Set in a toy store, this top-down action game

Nov 13, 2022

Feature-rich C99 library for memory scanning purposes, designed for Windows running machines, meant to work on both 32-bit and 64-bit portable executables. Has a modern C++ wrapper.

memscan Feature-rich C99 library for memory scanning purposes, designed for Windows running machines, meant to work on both 32-bit and 64-bit portable

Oct 2, 2022

jluna: A modern julia ⭤ C++ Wrapper

jluna: A modern julia ⭤ C++ Wrapper

jluna: A modern julia ⭤ C++ Wrapper (v0.5) Julia is a beautiful language, it is well-designed and well-documented. Julias C-API is also well-designed,

Nov 11, 2022

ES2C4 C Programming Labs

ES2C4 C Programming Labs

ES2C4 C Programming Labs University of Warwick, School of Engineering, ES2C4, C Programming Labs Disclaimer: If you are here to copy my answers I stro

Nov 23, 2021

Competitive Programming Language MM

MM Language MM Languageは、競技プログラミングのために開発中のプログラミング言語です。 どんなことが可能なのかは、examplesおよびexamples_outputsを参照ください。 まだ開発中の言語であるため、諸々不備があり、コンパイルエラーの行数表示さえまともに出せない状

Aug 22, 2022

Repository for the Object-oriented programming course for academic year 2020/21

Object-Oriented Programming 2020/21 Repository for the Object-oriented programming course for the 2020/21 academic year. Structure exam -- tasks given

Oct 21, 2021

System Programming 2021 Spring

sp-labs System Programming Labs 2021 Spring Repo 文件说明 lab: 实验指导书 & 题目。 answer_template: 提供对应 lab 的参考作答模板。建议将图片放至对应的img/文件夹下,使用 Markdown 编写,最后通过 Typora

Nov 18, 2022

My evolution in competitive programming especially with C++ on differents website

My evolution in competitive programming especially with C++ on differents website

competitive-programming My evolution in competitive programming especially with C++ on differents website. A typical example of an exercise/problem We

Jun 15, 2021
Modern, header-only, compact and cross platform C++ network/sockets library

cpp-net-lib Modern, header-only, compact and cross-platform C++ network/sockets library. Don't mind the crappy name, I suck at naming things. Why? I n

Jul 20, 2022
Modern C++ Programming Course (C++11/14/17/20)

Modern C++ Programming Course (C++11/14/17/20)

Nov 17, 2022
A comprehensive catalog of modern and classic books on C++ programming language
A comprehensive catalog of modern and classic books on C++ programming language

A comprehensive catalog of modern and classic books on C++ programming language

Nov 15, 2022
A modern dynamically typed programming language that gets compiled to bytecode and is run in a virtual machine called SVM (Strawbry Virtual Machine).

Strawbry A bytecode programming language. Here is what I want Strawbry to look like: var a = 1 var b = 2 var c = a + b print(c) func sqrt(x) { re

Jan 5, 2022
Programming-Basics - This Repository Contains source codes of various programming languages. Please Contribute to make this Useful.
Programming-Basics - This Repository Contains source codes of various programming languages. Please Contribute to make this Useful.

Programming-Basics About ❓ Want To Start your Open-Source Journey Without Facing Difficulties?,If Yes, Then You Are at The Right Place! ?? Don't Know

Oct 22, 2022
This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.
This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.

?? C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.

Nov 17, 2022
June Piscine 2021 from 1337 Benguerir 42 Network.

1337 My solutions for the June Piscine 2021. Please open an issue on github if you find anything incorrect. If you have any tips I would like to hear,

Nov 23, 2022
Homework repo of Modern Cpp for CV (2020Spring) at UniBonn

Modern C++ Course For CV (2020) source file can be found here. Homework Assignments Homework # Title Homework sheet Files and Data MyStatus Homework_1

Oct 8, 2022
🐛 Pangea Software's Bugdom for modern systems
🐛 Pangea Software's Bugdom for modern systems

Bugdom This is Bugdom running on modern macOS, Windows and Linux! This version, at https://github.com/jorio/Bugdom, is approved by Pangea Software. Ge

Nov 12, 2022
📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly
📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly

The book claims to be "On the Fly". Its intent is to provide a comprehensive introduction to the relevant features regarding modern C++ (before 2020s). Readers can choose interesting content according to the following table of content to learn and quickly familiarize the new features you would like to learn. Readers should be aware that not all of these features are required. Instead, it should be learned when you really need it.

Nov 25, 2022