Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Sockets 无法接受服务器上的套接字连接_Sockets_.net Core - Fatal编程技术网

Sockets 无法接受服务器上的套接字连接

Sockets 无法接受服务器上的套接字连接,sockets,.net-core,Sockets,.net Core,我已经创建了一个.NET控制台应用程序,我想在其中接受客户端WebSocket。(我正在使用chrome扩展-简单Web套接字客户端)。 当我尝试向连接的客户端发送消息时,浏览器中出现以下错误: WebSocket connection to 'ws://localhost:8600/' failed: Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE CLOSED: ws://localh

我已经创建了一个
.NET控制台应用程序
,我想在其中接受
客户端
WebSocket。(我正在使用chrome扩展-
简单Web套接字客户端
)。 当我尝试向连接的客户端发送消息时,浏览器中出现以下错误:

    WebSocket connection to 'ws://localhost:8600/' failed: 
    Error during WebSocket handshake: net::ERR_INVALID_HTTP_RESPONSE
    CLOSED: ws://localhost:8600
服务器

class Program
    {
        static async Task Main(string[] args)
        {
            CancellationTokenSource src = new CancellationTokenSource();

            Console.WriteLine("starting server...");
            Task server = Task.Run(async () =>
            {
                Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                var point = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8600);

                serverSocket.Bind(point);
                Console.WriteLine("Listening on localhost:8600" );
                serverSocket.Listen(6);
                var client = await serverSocket.AcceptAsync();
                Task clientTask = Task.Run(async () =>
                {
                    while (true)
                    {
                        await client.SendAsync(Encoding.UTF8.GetBytes("Date is" + DateTime.Now.ToString()), SocketFlags.None);
                        await Task.Delay(5000);
                    }
                },src.Token);

            }, src.Token);
            while (true)
            {
                if (Console.ReadKey().Key == ConsoleKey.A)
                {
                    src.Cancel();
                    break;
                }
            }
        }
    }
从简单Web套接字客户端(chrome扩展),我尝试连接到:
ws://localhost:8600

p.S我不确定是否在所有任务中都传递相同的令牌,但除此之外,我不知道为什么会出现此错误。

您的服务器代码根本没有实现or协议。 WebSocket会话以会话的形式开始,其中客户端发送请求,要求服务器升级到的连接,然后服务器的响应指示升级是否成功,然后才能交换任何WebSocket消息

您的服务器只是打开一个普通的TCP端口,然后在客户端连接后立即发送任意字符串数据。您根本没有遵守或协议。因此,当然,WebSocket客户端将报告建立WebSocket会话失败。您的服务器没有发送回有效的HTTP升级响应(正如客户端错误所述)

不要直接使用类,而是尝试使用and类。例如:

您的服务器代码根本没有实现或协议。 WebSocket会话以会话的形式开始,其中客户端发送请求,要求服务器升级到的连接,然后服务器的响应指示升级是否成功,然后才能交换任何WebSocket消息

您的服务器只是打开一个普通的TCP端口,然后在客户端连接后立即发送任意字符串数据。您根本没有遵守或协议。因此,当然,WebSocket客户端将报告建立WebSocket会话失败。您的服务器没有发送回有效的HTTP升级响应(正如客户端错误所述)

不要直接使用类,而是尝试使用and类。例如: