C# 服务器未接收消息
我正在写一个websockets客户端。我有两个问题:C# 服务器未接收消息,c#,php,websocket,client-server,websocket4net,C#,Php,Websocket,Client Server,Websocket4net,我正在写一个websockets客户端。我有两个问题: 当我关闭应用程序的窗口时,服务器将关闭 服务器未接收消息,但客户端始终从服务器接收问候消息 系统异常:在websocket被删除后,您必须通过websocket发送数据 打开 C#(Websocket4Net库)上的客户端 更新客户端 while (_clientSocket.State != WebSocketState.Open) { if (_clientSocket.State
while (_clientSocket.State != WebSocketState.Open)
{
if (_clientSocket.State == WebSocket4Net.WebSocketState.Open)
{
Console.WriteLine(_clientSocket.State);
_clientSocket.Send(ecn.GetBytes(jsonMessage), 0, ecn.GetBytes(jsonMessage).Length);
}
else
{
Console.WriteLine("E: " + _clientSocket.State);
//_clientSocket.Close();
}
}
它说的是“连接”。我怀疑这可能与握手错误有关-当查看代码时,我发现如果没有握手,就会抛出此错误
private bool EnsureWebSocketOpen()
{
if (!Handshaked)
{
OnError(new Exception(m_NotOpenSendingMessage));
return false;
}
return true;
}
请继续主题:(错误提示了一个计时问题,您确定在发送数据之前已连接套接字吗?错误的做法是假设连接已连接,在发送数据之前检查状态。@Wranorn,查看更新的代码。客户端套接字在“连接”时冻结state.can您可以将任何东西从客户端连接到服务器(即telnet是否连接到服务器?)@Wranorn,telnet连接到服务器但不发送消息。我在js上有一个小客户端,它工作得很好。
while (_clientSocket.State != WebSocketState.Open)
{
if (_clientSocket.State == WebSocket4Net.WebSocketState.Open)
{
Console.WriteLine(_clientSocket.State);
_clientSocket.Send(ecn.GetBytes(jsonMessage), 0, ecn.GetBytes(jsonMessage).Length);
}
else
{
Console.WriteLine("E: " + _clientSocket.State);
//_clientSocket.Close();
}
}
private bool EnsureWebSocketOpen()
{
if (!Handshaked)
{
OnError(new Exception(m_NotOpenSendingMessage));
return false;
}
return true;
}