Dynamic memory handling
Update header to relative paths
Uses different queues for send/recv threads
Update header path and updated for loop declaration for c89 compatibility