Universal send and recv