/// <summary> /// 获取 Socket 缓存池大小 /// </summary> /// <returns></returns> public uint GetFreeSocketObjPool() { return(HPSocketSdk.HP_Agent_GetFreeSocketObjPool(pAgent)); }
/// <summary> /// 获取连接中未发出数据的长度 /// </summary> /// <param name="connId"></param> /// <param name="length"></param> /// <returns></returns> public bool GetPendingDataLength(IntPtr connId, ref int length) { return(HPSocketSdk.HP_Agent_GetPendingDataLength(pAgent, connId, ref length)); }
/// <summary> /// 调用系统的 ::WSAGetLastError() 方法获取通信错误代码 /// </summary> /// <returns></returns> public int SYSWSAGetLastError() { return(HPSocketSdk.SYS_WSAGetLastError()); }
/// <summary> /// 名称:发送小文件 /// 描述:向指定连接发送 4096 KB 以下的小文件 /// </summary> /// <param name="connId"></param> /// <param name="filePath">文件路径</param> /// <param name="head">头部附加数据</param> /// <param name="tail">尾部附加数据</param> /// <returns>TRUE.成功,FALSE.失败,可通过 SYSGetLastError() 获取 Windows 错误代码</returns> public bool SendSmallFile(IntPtr connId, string filePath, ref WSABUF head, ref WSABUF tail) { return(HPSocketSdk.HP_TcpAgent_SendSmallFile(pAgent, connId, filePath, ref head, ref tail)); }
/// <summary> /// 断开超过指定时长的静默连接 /// </summary> /// <param name="period">毫秒</param> /// <param name="force">强制</param> /// <returns></returns> public bool DisconnectSilenceConnections(uint period, bool force = true) { return(HPSocketSdk.HP_Agent_DisconnectSilenceConnections(pAgent, period, force)); }
/// <summary> /// 连接服务器,连接成功后 IAgentListener 会接收到 OnConnect() 事件 /// </summary> /// <param name="address"></param> /// <param name="port"></param> /// <param name="connId"></param> /// <returns></returns> public bool Connect(string address, ushort port, ref IntPtr connId) { return(HPSocketSdk.HP_Agent_Connect(pAgent, address, port, ref connId)); }
/// <summary> /// 发送数据 /// </summary> /// <param name="connId"></param> /// <param name="bufferPtr"></param> /// <param name="offset">针对bufferPtr的偏移</param> /// <param name="size">发多大</param> /// <returns></returns> public bool Send(IntPtr connId, IntPtr bufferPtr, int offset, int size) { return(HPSocketSdk.HP_Agent_SendPart(pAgent, connId, bufferPtr, size, offset)); }
/// <summary> /// 获取数据发送策略 /// </summary> /// <param name="pAgent"></param> /// <returns></returns> public SendPolicy GetSendPolicy() { return(HPSocketSdk.HP_Agent_GetSendPolicy(pAgent)); }
/// <summary> /// 设置数据接收策略 /// </summary> /// <param name="enSendPolicy"></param> public void SetRecvPolicy(RecvPolicy policy) { HPSocketSdk.HP_Agent_SetRecvPolicy(pAgent, policy); }
/// <summary> /// 获取关闭服务前等待连接关闭的最长时限 /// </summary> /// <returns></returns> public uint GetMaxShutdownWaitTime() { return(HPSocketSdk.HP_Agent_GetMaxShutdownWaitTime(pAgent)); }
/// <summary> /// 设置数据发送策略 /// </summary> /// <param name="enSendPolicy"></param> public void SetSendPolicy(SendPolicy policy) { HPSocketSdk.HP_Agent_SetSendPolicy(pAgent, policy); }
/// <summary> /// 获取心跳检查间隔 /// </summary> /// <returns></returns> public uint GetKeepAliveInterval() { return(HPSocketSdk.HP_TcpAgent_GetKeepAliveInterval(pAgent)); }
/// <summary> /// 获取心跳检查次数 /// </summary> /// <returns></returns> public uint GetKeepAliveTime() { return(HPSocketSdk.HP_TcpAgent_GetKeepAliveTime(pAgent)); }
/// <summary> /// 获取内存块缓存池回收阀值 /// </summary> /// <returns></returns> public uint GetFreeBufferObjHold() { return(HPSocketSdk.HP_Agent_GetFreeBufferObjHold(pAgent)); }
/// <summary> /// 调用系统的 ioctlsocket() /// </summary> /// <param name="sock"></param> /// <param name="cmd"></param> /// <param name="arg"></param> /// <returns></returns> /// public int SYSIoctlSocket(IntPtr sock, long cmd, IntPtr arg) { return(HPSocketSdk.SYS_IoctlSocket(sock, cmd, arg)); }
/// <summary> /// 获取数据接收策略 /// </summary> /// <param name="pAgent"></param> /// <returns></returns> public RecvPolicy GetRecvPolicy() { return(HPSocketSdk.HP_Agent_GetRecvPolicy(pAgent)); }
/// <summary> /// 调用系统的 ::WSAIoctl() /// </summary> /// <param name="sock"></param> /// <param name="dwIoControlCode"></param> /// <param name="lpvInBuffer"></param> /// <param name="cbInBuffer"></param> /// <param name="lpvOutBuffer"></param> /// <param name="cbOutBuffer"></param> /// <param name="lpcbBytesReturned"></param> /// <returns></returns> public int SYS_WSAIoctl(IntPtr sock, uint dwIoControlCode, IntPtr lpvInBuffer, uint cbInBuffer, IntPtr lpvOutBuffer, uint cbOutBuffer, uint lpcbBytesReturned) { return(HPSocketSdk.SYS_WSAIoctl(sock, dwIoControlCode, lpvInBuffer, cbInBuffer, lpvOutBuffer, cbOutBuffer, lpcbBytesReturned)); }
public virtual void SetOnConnectCallback(HPSocketSdk.OnConnect connect) { OnConnectCallback = connect == null ? null : new HPSocketSdk.OnConnect(connect); HPSocketSdk.HP_Set_FN_Agent_OnConnect(pListener, OnConnectCallback); }
/// <summary> /// 发送数据 /// </summary> /// <param name="connId"></param> /// <param name="bytes"></param> /// <param name="offset">针对bytes的偏移</param> /// <param name="size">发多大</param> /// <returns></returns> public bool Send(IntPtr connId, byte[] bytes, int offset, int size) { return(HPSocketSdk.HP_Agent_SendPart(pAgent, connId, bytes, size, offset)); }
public virtual void SetOnSendCallback(HPSocketSdk.OnSend send) { OnSendCallback = send == null ? null : new HPSocketSdk.OnSend(send); HPSocketSdk.HP_Set_FN_Server_OnSend(pListener, OnSendCallback); }
/// <summary> /// 发送多组数据 /// 向指定连接发送多组数据 /// TCP - 顺序发送所有数据包 /// </summary> /// <param name="connId">连接 ID</param> /// <param name="pBuffers">发送缓冲区数组</param> /// <param name="iCount">发送缓冲区数目</param> /// <returns>TRUE.成功,FALSE.失败,可通过 SYSGetLastError() 获取 Windows 错误代码</returns> public bool SendPackets(IntPtr connId, WSABUF[] pBuffers, int count) { return(HPSocketSdk.HP_Agent_SendPackets(pAgent, connId, pBuffers, count)); }
public virtual void SetOnReceiveCallback(HPSocketSdk.OnReceive recv) { OnReceiveCallback = recv == null ? null : new HPSocketSdk.OnReceive(recv); HPSocketSdk.HP_Set_FN_Server_OnReceive(pListener, OnReceiveCallback); }
/// <summary> /// 断开某个连接 /// </summary> /// <param name="connId"></param> /// <param name="force">强制</param> /// <returns></returns> public bool Disconnect(IntPtr connId, bool force = true) { return(HPSocketSdk.HP_Agent_Disconnect(pAgent, connId, force)); }
public virtual void SetOnErrorCallback(HPSocketSdk.OnError error) { OnErrorCallback = error == null ? null : new HPSocketSdk.OnError(error); HPSocketSdk.HP_Set_FN_Server_OnError(pListener, OnErrorCallback); }
/// <summary> /// 获取附加数据 /// 如设置的是个结构体/类对象,可以用 Type objA = (Type)Marshal.PtrToStructure(ptr, typeof(Type)) 获取 /// 其中Type是结构体/类名,ptr是该方法的传出值,在该方法返回为true的时候可用 /// </summary> /// <param name="connId"></param> /// <param name="ptr"></param> /// <returns></returns> public bool GetConnectionExtra(IntPtr connId, ref IntPtr ptr) { return(HPSocketSdk.HP_Agent_GetConnectionExtra(pAgent, connId, ref ptr) && ptr != IntPtr.Zero); }
public virtual void SetOnCloseCallback(HPSocketSdk.OnClose close) { OnCloseCallback = close == null ? null : new HPSocketSdk.OnClose(close); HPSocketSdk.HP_Set_FN_Server_OnClose(pListener, OnCloseCallback); }
/// <summary> /// 获取某个连接静默时间(毫秒) /// </summary> /// <param name="connId"></param> /// <param name="period"></param> /// <returns></returns> public bool GetSilencePeriod(IntPtr connId, ref uint period) { return(HPSocketSdk.HP_Agent_GetSilencePeriod(pAgent, connId, ref period)); }
public virtual void SetOnShutdownCallback(HPSocketSdk.OnShutdown shutdown) { OnShutdownCallback = shutdown == null ? null : new HPSocketSdk.OnShutdown(shutdown); HPSocketSdk.HP_Set_FN_Agent_OnShutdown(pListener, OnShutdownCallback); }
/// <summary> /// 调用系统的 setsockopt() /// </summary> /// <param name="sock"></param> /// <param name="level"></param> /// <param name="name"></param> /// <param name="val"></param> /// <param name="len"></param> /// <returns></returns> /// public int SYS_SetSocketOption(IntPtr sock, int level, int name, IntPtr val, int len) { return(HPSocketSdk.SYS_SetSocketOption(sock, level, name, val, len)); }
/// <summary> /// 获取 Socket 缓存对象锁定时间 /// </summary> /// <returns></returns> public uint GetFreeSocketObjLockTime() { return(HPSocketSdk.HP_Agent_GetFreeSocketObjLockTime(pAgent)); }