
Hi Lloyd,
I have an asio::ip::tcp::socket. Whenever I try to read from it, it throws an exception "end of file". But it is possible to write to the socket at any time! This is a client side application, it connects to the server using asio::async_connect(). The server is sending back the data, I checked it with wireshark. I tried using the both async_read() and read(), in both cases it fails with the same error. But both async_write(), and write() works perfectly. What could be the reason?
You don't provide a lot of information about the protocol, but the behavior you are seeing might be the server shutting down the servers' sending side of the connection, like sock.shutdown(boost::asio::ip::tcp::socket::shutdown_send, error); which still will leave the client able to write() data to the socket. The client should be able to read the data sent from the server before the shutdown() though. Just an idea. Best regards, Martin Dyring-Andersen