added the ability to wait forever by passing <0 to recv. explicitly setting sender...