No, the NDK does not have a hard limit on the number of sockets. However, memory is the main constraint when designing an application. To allow deterministic behavior, sockets allocate and deallocate fixed-size buffers dynamically from the packet buffer manager (PBM). The PBM has a limited size that depends on the number of buffers configured in the file . That, in turn depends on the amount of heap memory available. Therefore, if the application has a fairly large amount of sockets open and communicating at a given time, any attempts to communicate may return the error code 55 (ENOBUFS or No buffer space available). The solution is to increase the buffer manager. For additional details on how to do this please see section 5.3 of NDK User’s Guide (spru523). You will have to rebuild using the script provided with NDK. Lastly, the error above may also appear due to scheduler starvation caused by real-time constraints. Please see question 13 above.