Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务器未接收消息_C#_Php_Websocket_Client Server_Websocket4net - Fatal编程技术网

C# 服务器未接收消息

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

我正在写一个websockets客户端。我有两个问题:

  • 当我关闭应用程序的窗口时,服务器将关闭

  • 服务器未接收消息,但客户端始终从服务器接收问候消息

  • 系统异常:在websocket被删除后,您必须通过websocket发送数据 打开

    C#(Websocket4Net库)上的客户端

    更新客户端

    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;
            }