id summary reporter owner description type status milestone component version severity resolution keywords cc 2835 basic_stream_socket::available() does not work reliably sidharth@… chris_kohlhoff "basic_stream_socket::available() often reports 0 bytes even when there is data available to be read. The implementation of basic_stream_socket::available() for windows uses ioctlsocket() with FIONREAD which Microsoft advises against using. (recv(MSG_PEEK) is not prescribed either). http://support.microsoft.com/kb/192599 For clients wanting to poll for available data and then calling a blocking read, barring any other reliable way to peek for data availability, it would be better to have an isavailable() (based on select()) which a client could call before doing a read_some. I realize the root cause is a Microsoft issue, but it's a boost asio bug at the end of the day. " Bugs closed Boost 1.39.0 asio Boost 1.38.0 Problem wontfix