Skip to content

atyenoria/uv4l-webrtc-datachannel

Repository files navigation

## compile
clang++ -lboost_regex regx.cpp
clang++ -lpthread -lboost_system -lboost_chrono asio1.cpp -o asio1

- uv4l on mac
clang++ -std=c++11  -lboost_system  -lboost_coroutine uv4l.cpp -o uv4l
clang++ -std=c++11  -lboost_system  -lboost_coroutine uv4l-server.cpp -o uv4l-server

- uv4l on linux
g++ -std=c++11 -I"/usr/include/boost"  uv4l.cpp -o uv4l -lboost_system  -lboost_coroutine
g++ -std=c++11 -I"/usr/include/boost"  uv4l-server.cpp -o uv4l-server -lboost_system  -lboost_coroutine


g++ -std=c++11  -lboost_system  -lboost_coroutine uv4l.cpp -o uv4l

g++ -std=c++11 -I"/usr/include/boost"  uv4l.cpp -o uv4l -lboost_system  -lboost_coroutine
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt  && ./a.out


- asio daytime
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt daytime-client.cpp -o daytime-client
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt daytime-server.cpp -o daytime-server
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt daytime-server-async.cpp -o daytime-server-async


- asio chat
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt chat_client.cpp -o chat_client
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt chat_server.cpp -o chat_server

clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt server.cpp -o server


- asio spawn
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt echo_server.cpp -o echo_server

- asio unix
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt stream_client.cpp -o stream_client
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt stream_server.cpp -o stream_server
clang++ -std=c++11  -lboost_system  -lboost_coroutine -lboost_thread-mt connect_pair.cpp -o connect_pair




## references
- asio
http://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio.html

- asio async desc
http://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/tutorial/tutdaytime3.html

- asio spawn
http://www.boost.org/doc/libs/1_54_0/doc/html/boost_asio/example/cpp11/spawn/echo_server.cpp

- thread
http://www.boost.org/doc/libs/1_61_0/doc/html/thread.html

- coroutine
http://www.boost.org/doc/libs/1_61_0/libs/coroutine/doc/html/index.html
http://www.boost.org/doc/libs/1_61_0/libs/coroutine/doc/html/coroutine/intro.html

- stackful coroutine
http://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/overview/core/spawn.html

- How do stackless coroutines differ from stackful coroutines?
http://stackoverflow.com/questions/28977302/how-do-stackless-coroutines-differ-from-stackful-coroutines

- Preemption
https://en.wikipedia.org/wiki/Preemption_(computing)

- recv (MSG_WAITALL)
http://linux.die.net/man/2/recv

- send
http://linux.die.net/man/2/send

- What does the explicit keyword in C++ mean?
http://stackoverflow.com/questions/121162/what-does-the-explicit-keyword-in-c-mean

- Unix socket, SOCK_SEQPACKET vs SOCK_DGRAM
http://stackoverflow.com/questions/10104082/unix-socket-sock-seqpacket-vs-sock-dgram

The difference is two-fold:

Difference #1 - SOCK_SEQPACKET handles backpressure by tossing out the offending packet and returning an error to the sending socket, whereas SOCK_STREAM tosses out the offending packet, then asks for it to be retransmitted when the buffer has space. This makes SOCK_SEQPACKET potentially more efficient in that the sender can reduce the outgoing data rate to reduce dropped packets.

Difference #2 - SOCK_STREAM is supported by windows and all major versions of linux SOCK_SEQPACKET is only supported by a subset of fairly arcane builds of linux AFAIK.

- What's the difference between streams and datagrams in network programming?
http://stackoverflow.com/questions/4688855/whats-the-difference-between-streams-and-datagrams-in-network-programming




About

test. for m2m realtime control

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published