Comparison with BSD sockets

In design, it is not unlike the BSD sockets API. Some of the terminology differs however: in the sequential API, the term connection is used for any communication link between network peers, and the handle for a connection is termed a netconn. A netconn can be considered analogous to a socket, albeit specific to networking - BSD sockets traditionally represent both network connections and files.

The main reason for superiority over the socket API occurs with buffer management. The BSD socket API was designed to manage the fact that the user and the operating system kernel operate in different address spaces and data must always be copied regardless. This results in not only decreased performance, but also increased footprint as buffers must be allocated to hold the copied data.

BSD API Restrictions

By default the eCos lwIP configurations enable the option CYGFUN_LWIP_COMPAT_SOCKETS which means normally you cannot include both the lwIP headers <lwip/sockets.h> or <network.h>, and the CYGPKG_IO_FILEIO package (i.e. POSIX-alike) headers from the same file.

Documentation license for this page: eCosPro License