//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 Jiang Yin. All rights reserved. // Homepage: https://gameframework.cn/ // Feedback: mailto:ellan@gameframework.cn //------------------------------------------------------------ using System; using System.Net; using System.Net.Sockets; namespace GameFramework.Network { /// /// 网络频道接口。 /// public interface INetworkChannel { /// /// 获取网络频道名称。 /// string Name { get; } /// /// 获取网络频道所使用的 Socket。 /// Socket Socket { get; } /// /// 获取是否已连接。 /// bool Connected { get; } /// /// 获取网络服务类型。 /// ServiceType ServiceType { get; } /// /// 获取网络地址类型。 /// AddressFamily AddressFamily { get; } /// /// 获取要发送的消息包数量。 /// int SendPacketCount { get; } /// /// 获取累计发送的消息包数量。 /// int SentPacketCount { get; } /// /// 获取已接收未处理的消息包数量。 /// int ReceivePacketCount { get; } /// /// 获取累计已接收的消息包数量。 /// int ReceivedPacketCount { get; } /// /// 获取或设置当收到消息包时是否重置心跳流逝时间。 /// bool ResetHeartBeatElapseSecondsWhenReceivePacket { get; set; } /// /// 获取丢失心跳的次数。 /// int MissHeartBeatCount { get; } /// /// 获取或设置心跳间隔时长,以秒为单位。 /// float HeartBeatInterval { get; set; } /// /// 获取心跳等待时长,以秒为单位。 /// float HeartBeatElapseSeconds { get; } /// /// 注册网络消息包处理函数。 /// /// 要注册的网络消息包处理函数。 void RegisterHandler(IPacketHandler handler); /// /// 设置默认事件处理函数。 /// /// 要设置的默认事件处理函数。 void SetDefaultHandler(EventHandler handler); /// /// 连接到远程主机。 /// /// 远程主机的 IP 地址。 /// 远程主机的端口号。 void Connect(IPAddress ipAddress, int port); /// /// 连接到远程主机。 /// /// 远程主机的 IP 地址。 /// 远程主机的端口号。 /// 用户自定义数据。 void Connect(IPAddress ipAddress, int port, object userData); /// /// 关闭网络频道。 /// void Close(); /// /// 向远程主机发送消息包。 /// /// 消息包类型。 /// 要发送的消息包。 void Send(T packet) where T : Packet; } }