C#Tcp服务器-HTML5网络套接字通信
C# Tcp Server - HTML5 Websocket communication
我正在编写C#Tcp服务器和HTML5 Websocket客户端。但当从客户端向服务器发送消息时,我在C#Tcp服务器上得到了"GET/HTTP/1.1"消息。
c#服务器
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace websocket
{
class Program
{
static void Main(string[] args)
{
TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.2"), 500);
server.Start();
Console.WriteLine("Basladi");
Console.WriteLine("Bekliyor");
while (true)
{
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Baglandi");
NetworkStream asd = client.GetStream();
byte[] buffer = new byte[1024];
String mesaj = Encoding.ASCII.GetString(buffer, 0, asd.Read(buffer, 0, buffer.Length));
Console.WriteLine(mesaj);
}
server.Stop();
}
}
}
HTML5 Websocket客户端
function WebSocketTest()
{
var ws = new WebSocket("ws://127.0.0.2:500");
ws.onopen = function()
{
ws.send("Message to send");
document.write("Message is sent...");
};
ws.onmessage = function (evt)
{
var received_msg = evt.data;
document.write("Message is received...");
};
ws.onclose = function()
{
document.write("Connection is closed...");
};
}
结果
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: 127.0.0.2:500
Origin: null
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: Nmh4m9EiHa9GFx8Ft5Z9bQ==
Sec-WebSocket-Version: 13
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits, x-webkit-deflate-frame
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
WebSockets不是普通的TCP套接字,而是HTTP连接中的类似套接字的层。您在这里看到的是客户端的HTTP请求,其中包含将HTTP连接升级为WebSocket连接的请求。如果你不想使用现有的WebSocket库,你必须自己实现协议,即首先实现一个最小的web服务器(RFC2616),然后将WebSocket层放在上面(RFC6455)。
相关文章:
- 如何使用HTML5与UDP套接字通信
- 在node.js中写入ECONNRESET错误和套接字连接检查
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- 套接字服务器向客户端广播,但不从两者接收
- 如何确定套接字中的变量是否匹配
- 如何通过网络套接字连接到树莓派上的Mosquitto经纪人
- 在 HTML5 和 C# Web 套接字通信之间
- 是否可以与位于不同于html5网站呈现的服务器的网络套接字进行通信
- 无法与网络套接字通信.高速公路:收到 HELLO 消息,会话尚未建立
- Javascript到Java通过套接字编程进行通信
- 安卓应用和网络浏览器之间的套接字通信
- 客户端Java服务器与Javascript之间的套接字通信
- 如何使用javascript/html5中的web套接字与python通信
- C#Tcp服务器-HTML5网络套接字通信
- Java和JavaScript套接字通信
- 使HTML页面与C中的套接字通信
- 使用网络套接字的低延迟通信&Java服务器
- 套接字.IO客户端无法与服务器通信
- 我可以创建一个java服务器,既与java套接字与web套接字通信
- Nodejs, express &套接字.两个静态客户端页面之间的IO通信