Close Connection
With tirdwr
on a stream, you can send and receive data over a
transport connection for the duration of the connection. Either user can terminate the
connection by closing the file descriptor associated with the transport endpoint or by
popping the tirdwr
module off the stream. In either case,
tirdwr
does the following:
-
If
tirdwr
receives an orderly release request, it passes the request to the transport provider to complete the orderly release of the connection. The remote user who initiated the orderly release procedure receives the expected request when data transfer completes. -
If
tirdwr
receives a disconnect request, it takes no special action. -
If
tirdwr
receives neither an orderly release nor a disconnect request, it passes a disconnect request to the transport provider to abort the connection. -
If an error occurs on the stream and
tirdwr
does not receive a disconnect request, it passes a disconnect request to the transport provider.
A process cannot initiate an orderly release after pushing tirdwr
onto a stream. tirdwr
handles an orderly release if the user on the
other side of a transport connection initiates the release. If the client in this
section is communicating with a server program, the server terminates the transfer of
data with an orderly release request. The server then waits for the corresponding
request from the client. At that point, the client exits and closes the transport
endpoint. After closing the file descriptor, tirdwr
initiates the
orderly release request from the client's side of the connection. This release generates
the request on which the server blocks.
Some protocols, like TCP, require this orderly release to ensure intact delivery of the data.