On provides a way to create
On the other hand, reading and writing are provided by low level calls. On can exchange values or arrays of values (pointers+size). It remains unclear if we should allow transfer of higher level objects, since socket exchanges should be generally used between different codes?