gpt4 book ai didi

c# - 获取StreamSocket的连接状态(UWP)

转载 作者:行者123 更新时间:2023-12-03 11:57:52 25 4
gpt4 key购买 nike

我在Windows Universal应用程序中使用StreamSocket建立与基于文本的游戏的TCP/IP连接(套接字保持打开状态很长时间)。我让它连接并返回数据很好。我过去使用的大多数套接字实现都有一个属性或函数(或一种轮询套接字的方式)并获取状态(无论它是打开,关闭,损坏,挂起等)。

我还没有找到使用StreamSocket做到这一点的方法。

我的问题是,如何查询StreamSocket连接的状态以查看其是否被丢弃(而不必等到我向管道下发送某些东西以使其出错时)?

例如,可以执行以下操作:
if (this.Socket.Status != Status.Connected) ...

最佳答案

if (this.Socket.Status != Status.Connected)



但是,据我所知,uwp没有提供此类api。

Windows.Networking.Sockets 命名空间具有便捷的帮助器方法和枚举,用于处理使用套接字和WebSocket时的错误。这对于在您的应用中以不同方式处理特定的网络异常很有用。

DatagramSocketStreamSocketStreamSocketListener操作上遇到的错误将作为 HRESULT值返回。 SocketError.GetStatus方法用于将网络错误从套接字操作转换为 SocketErrorStatus枚举值。大多数 SocketErrorStatus枚举值对应于 native Windows套接字操作返回的错误。应用程序可以根据特定的 SocketErrorStatus枚举值进行过滤,以根据异常原因修改应用程序的行为。

对于参数验证错误,应用程序还可以使用异常中的 HRESULT来了解有关导致异常的错误的更多详细信息。 Winerror.h头文件中列出了可能的 HRESULT值。对于大多数参数验证错误,返回的 HRESULT为E_INVALIDARG

关于c# - 获取StreamSocket的连接状态(UWP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42144801/

25 4 0
文章推荐: javascript - 类型错误 : Object # has no method 'Schema'