On Wednesday, 27 May 2015 at 19:04:53 UTC, Márcio Martins wrote:
On Wednesday, 27 May 2015 at 05:48:13 UTC, zhmt wrote:


The code you posted is the client code, but the issue seems to be on the server side.
Can you post the server code and also the timing code?


@Márcio Martins

here is the server code:

void echoServer()
{
        Acceptor acc2 = new Acceptor();
        acc2.listen("0.0.0.0",8881,100);
        acc2.accept((Ptr!Conn c){
                        scope(exit) c.close();
                        
                        ubyte[5] buf;
                        while(true)
                        {
                                int n = c.readSome(buf);
                                if(n<=0){
                                        break;
                                }
                                c.write(buf[0..n]);
                        }
                        writeFlush("close server sock");
                });
}

and I found the reason:
the buffer size on server is too small, just five,so if the data size is more than 5(10000 for example),it will need two read operation。

The length of “10000” is 5,it perfectly matched the point of falling down。
If change the buffer size to 100, it runs well。

But why it falls sharply down to about 24,I will continue to study。

Reply via email to