C#服务器和HTML客户端之间的握手

时间:2018-07-12 13:25:07

标签: c# html sockets handshake

我曾经运行过c#服务器和html客户端,但是它们之间的握手失败了:

html客户端控制台错误

“与'ws:// localhost:100 /'的WebSocket连接失败:连接建立错误:net :: ERR_CONNECTION_REFUSED”

我运行服务器时的服务器控制台输出:

react-router

文本是获取时间的请求 发送给客户的时间 收到的文字: 文字是获取时间的要求 发送给客户的时间

server.cs

window.location.replace

}

client.html     

     Setting up server...
     Server setup complete
     Client connected, waiting for request...
     Received Text: GET / HTTP/1.1
     Host: localhost:100
     Connection: Upgrade
     Pragma: no-cache
     Cache-Control: no-cache
     Upgrade: websocket
     Origin: http://localhost:63342
     Sec-WebSocket-Version: 13
     User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 
     like Gecko) Chrome/67.0.3396.99 Safari/537.36
     Accept-Encoding: gzip, deflate, br
     Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
     Cookie: wab_portalurl_persistent=https%3A%2F%2Fgeo-tebourbi.maps.arcgis.com; 
     wab_cr_theme-config-Plugin=%5B%5D
     Sec-WebSocket-Key: DjATMra8JUjbbvoD5EAz0Q==
     Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits

我的代码中有关握手步骤的问题吗?谢谢

1 个答案:

答案 0 :(得分:1)

您正在客户端使用WebSocket,而在服务器端使用普通套接字。但是,WebSocket与普通套接字不同,服务器需要使用WebSockets应用协议来与WebSockets客户端进行通信。

请参见Writing a WebSocket server in C#,以及如何Differences between TCP sockets and web sockets, one more time,以了解为什么不能像您尝试的那样将简单的TCP服务器与WebSockets客户端一起使用。