Describe the solution you'd like
For advanced users that need very explicitly-timed closing of TCP connections (i.e. not waiting on GC or having to run it), we should offer a way to close the client. This should probably be exposed as ServiceClient.unsafe_close() and be documented with wording like "users should not use this, and the behavior of any use of clients or things relying on clients after this call is undefined". Whether this drops the client from a Rust POV (e.g. we put it in an option and take it on close) or we add a Core method to help with this is up to the implementer/discussion.
This should also include a test (even if platform specific) that confirms the socket is closed on return from that call.