using System; using System.Threading.Tasks; namespace Plane.Communication { /// /// 定义与远程主机通信的方法。 /// public interface IConnection { /// /// 在不宜抛出的异常发生时引发的事件。 /// event EventHandler ExceptionThrown; /// /// 获取一个值,指示通信是否已开启。 /// bool IsOpen { get; } /// /// 关闭通信。 /// void Close(); /// /// 开启通信。 /// /// 表示此异步操作的 实例。 Task OpenAsync(); /// /// 异步读取数据。顺利完成时将正好读取 个字节。 /// /// 存放数据的缓冲区。 /// 起始下标。 /// 要读取的字节数。 /// 包含成功读取的字节数的 实例。此数目在操作顺利完成时保证与 等,否则为 0。 Task ReadAsync(byte[] buffer, int offset, int count); /// /// 异步写入数据。会抛异常。 /// /// 存放数据的缓冲区。 /// 起始下标。 /// 要写入的字节数。 /// 表示此异步操作的 实例。 Task WriteAsync(byte[] buffer, int offset, int count); } }