Cleaned up the recv() code, and data packets should now actually be consumed