void SocketStreamTest::testEOF() { StreamSocket ss; SocketStream str(ss); { EchoServer echoServer; ss.connect(SocketAddress("localhost", echoServer.port())); str << "hello"; assert (str.good()); str.flush(); assert (str.good()); ss.shutdownSend(); char buffer[5]; str.read(buffer, sizeof(buffer)); assert (str.good()); assert (str.gcount() == 5); assert (std::string(buffer, 5) == "hello"); } int c = str.get(); assert (c == -1); assert (str.eof()); ss.close(); }
void SocketStreamTest::testLargeStreamEcho() { const int msgSize = 64000; EchoServer echoServer; StreamSocket ss; ss.connect(SocketAddress("localhost", echoServer.port())); SocketStream str(ss); ss.setSendBufferSize(msgSize); ss.setReceiveBufferSize(msgSize); std::string payload(msgSize, 'x'); str << payload; assert (str.good()); str.flush(); assert (str.good()); ss.shutdownSend(); assert (str.gcount() == 0); char buffer[msgSize]; str.read(buffer, sizeof(buffer)); assert (str.good()); assert (str.gcount() == msgSize); ss.close(); }