怎么判断SOCKET底层是否还有数据

如何判断SOCKET底层是否还有数据?
作为后端在和前端连接后,前端向后端发送消息,采用长连接,由于前端发送的消息头里面没有消息长度,后端在接受时很麻烦,由于后端接受时申请的内存有限,需要先接收一部分,把这些消息处理完后再去接收数据,但这个时候不知道底层是否还有数据,不知道能否根据receive返回值来判断,希望大家多给些提示。

------解决方案--------------------
select之
------解决方案--------------------
同意楼上,select判断套接字是否可读
------解决方案--------------------
select WSAAsyncSelect WSAEventSelect,都很方便知道socket是否有数据可读。
使用方法可参考msdn
------解决方案--------------------
select + FD_ISSET 进行判断