On Thursday, 30 December 2021 at 09:34:27 UTC, eugene wrote:
I suspect the question was asked somewhere before.
If so just give a link.

Anyway:

```d

class IoContext {
    ...
    ubyte[] buf;
    ...
    this(uint bufSize) {
        buf = new ubyte[bufSize];
    }
}

```


```d
class IoContext {
     ...
     ubyte[] buf;
     ...
     this(uint bufSize) {
buf.length = bufSize; //this should do the same thing, I believe
     }
}
```

The buffer contains (ascii) string terminated with '\n'.
In order to print it not as an array of numbers (buf is 1024 bytes long),
but as usual string I do

```d
char[] s = cast(char[])ioCtx.buf[0 .. strlen(cast(char*)ioCtx.buf.ptr) - 1];
// -1 is to eliminate terminating '\n'
writefln("got '%s' from '%s:%d'", s, client.addr, client.port);
```


```d
char[] s = cast(char[])ioCtx.buf[0 .. $];// please remember that in `[0 .. $]` last index is automatically `length - 1` but just buf[$] will be an error since there the actual `length` will be used

```

I _think_ the above code is correct, please verify


Reply via email to