Goals: 1. struct sockaddr * abstraction 2. ssize_t abstraction 3. cache socket descriptors weil kein close existiert 4. jede funktion hat timeout-possibility (connect_smart!) 5. optional readline and buffering functionality TODO: buffer == 0 -> fully unbuffered timeout == 0 -> fully blocking