TcpConnection.shutdownWrite
void shutdownWrite() @trusted nothrowShut the write direction down (graceful half-close, SD_SEND).
Idempotent. Queued sends still flush, then FIN is sent; subsequent send() calls fail with SendErrorReason.CLOSED and isWritable reports false. Reads and onData continue until the peer closes. Does not fire onClose by itself.