# Class type Netchannels.rec_in_channel

    class type rec_in_channel = object .. end

Recommended input class type for library interoperability.

## Description

This class type is defined in "Basic I/O class types" as collaborative effort of several library creators.

    method input : string -> int -> int -> int

Reads octets from the channel and puts them into the string. The first `int` argument is the position of the substring, and the second `int` argument is the length of the substring where the data are stored. The method returns the number of octets actually read and stored.

When the end of the channel is reached and there is no further octet to read, the exception `End_of_file` will be raised. This has been changed in ocamlnet-0.97! In previous releases the number 0 was returned at the end of the channel.

When the channel is non-blocking, and there are currently no bytes to read, the number 0 will be returned. This has been changed in ocamlnet-0.97! In previous releases this behaviour was undefined.

When the channel is closed, the exception `Closed_channel` will be raised if an ocamlnet implementation is used. For implementations of other libraries there is no standard for this case.

    method close_in : unit -> unit

Closes the channel for input.

When the channel is already closed, this is a no-op.

Error policy: Exceptions are only raised in cases of serious corruption, e.g. if the underlying descriptor is invalid.