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,,