【发布时间】:2012-01-18 17:20:36
【问题描述】:
我正在使用 C# WebSocket 服务器(目前由 https://datatracker.ietf.org/doc/html/draft-ietf-hybi-thewebsocketprotocol-17 支持)。 服务器与 .NET 的 Socket 对象一起工作,以便服务器监听并让每个客户端发送和接收消息。
我建立了一个连接到服务器的网络客户端,它可以连接成功,我可以在客户端之间发送消息。
一切都很好!
现在,如果我连接到服务器并离开客户端一段时间没有发送消息,服务器会抛出异常:
Int32 Send(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags):An 现有连接被远程主机强行关闭。
异常,正如您所看到的,来自服务器中客户端套接字的 Send 方法,这看起来很连线,因为我没有从客户端发送任何数据,也没有人向该客户端发送数据,所以如何难道是Send方法可以抛出异常,为什么会抛出这个异常?
【问题讨论】:
-
您可以发布发送代码(特别是引发异常的行)吗?
-
...另外,您知道 .Net4.5 将直接支持 WebSockets 吗?
-
是的,我知道 .Net 4.5 中的 WebSocket,但我不知道它什么时候发布。
-
并且抛出异常的行是:this.clientSocket.Send(sendData.ToArray());另一个被抛出:this.clientSocket.EndReceive(_result);正如我所说,我没有发送任何数据...