你注释掉的这两句: //byte[] msg = Encoding.UTF8.GetBytes("hello");
//state.workSocket.Send(msg);
改成下面的:
byte[] msg = PackageServerData("hello from server");
state.workSocket.Send(msg);
private static byte[] PackageServerData(string msg)
{
byte[] content = null;
byte[] temp = Encoding.UTF8.GetBytes(msg);
if (temp.Length < 126)
{
content = new byte[temp.Length + 2];
content[0] = 0x81;
content[1] = (byte)temp.Length;
Buffer.BlockCopy(temp, 0, content, 2, temp.Length);
}
else if (temp.Length < 0xFFFF)
{
content = new byte[temp.Length + 4];
content[0] = 0x81;
content[1] = 126;
content[2] = (byte)(temp.Length & 0xFF);
content[3] = (byte)(temp.Length >> 8 & 0xFF);
Buffer.BlockCopy(temp, 0, content, 4, temp.Length);
}
return content;
}
就可以握手成功了。
参考:https://blog.csdn.net/qq_20282263/article/details/54310737