“无法将数据写入传输连接:对等连接重置。”
JObject obj = JObject.Parse(VarTransform.reciveMASKXOR(bytes));
string docs = SearhLucene((int)obj.SelectToken("point"),Obj.SelectToken("data").ToString()); bytes = VarTransform.sendMaskXOR(docs);
//ERROR############
stream.Write(bytes, 0, bytes.Length);
//#################
byte[] bytes = Encoding.UTF8.GetBytes(text);
List<byte> Lbytes = new List<byte>();
Lbytes.Add((byte)129);
Lbytes.Add((byte)129);
int Length = bytes.Length + 1;
if (Length <= 125)
{
Lbytes.Add((byte)(Length));
Lbytes.Add((byte)(Lbytes.Count));
}
else
{
if (Length >= 125 && Length <= 65535)
{
Lbytes.Add((byte)126);
Lbytes.Add((byte)(Length >> 8));
Lbytes.Add((byte)Length);
Lbytes.Add((byte)Lbytes.Count);
}
else
{
Lbytes.Add((byte)127);
Lbytes.Add((byte)(Length >> 56));
Lbytes.Add((byte)(Length >> 48));
Lbytes.Add((byte)(Length >> 40));
Lbytes.Add((byte)(Length >> 32));
Lbytes.Add((byte)(Length >> 24));
Lbytes.Add((byte)(Length >> 16));
Lbytes.Add((byte)(Length >> 8));
Lbytes.Add((byte)Length);
Lbytes.Add((byte)Lbytes.Count);
}
}
Lbytes.RemoveAt(0);
Lbytes.AddRange(bytes);
return Lbytes.ToArray();
byte b = buffer[1];
int dataLength = 0;
int totalLength = 0;
int keyIndex = 0;
if (b - 128 <= 125)
{
dataLength = b - 128;
keyIndex = 2;
totalLength = dataLength + 6;
}
if (b - 128 == 126)
{
dataLength = BitConverter.ToInt16(new byte[] { buffer[3], buffer[2] }, 0);
keyIndex = 4;
totalLength = dataLength + 8;
}
if (b - 128 == 127)
{
dataLength = (int)BitConverter.ToInt64(new byte[] { buffer[9], buffer[8], buffer[7], buffer[6], buffer[5], buffer[4], buffer[3], buffer[2] }, 0);
keyIndex = 10;
totalLength = dataLength + 14;
}
if (totalLength > buffer.Length)
throw new Exception("The buffer length is small than the data length");
var key = new byte[] { buffer[keyIndex], buffer[keyIndex + 1], buffer[keyIndex + 2], buffer[keyIndex + 3] };
int dataIndex = keyIndex + 4;
int count = 0;
for (int i = dataIndex; i < totalLength; i++)
{
buffer[i] = (byte)(buffer[i] ^ key[count % 4]);
count++;
}
string res = "";
try
{
res=Encoding.UTF8.GetString(buffer, dataIndex, dataLength);
}catch(Exception ex)
{
res = "all:a";
}
return res;
如果docs值为"hello"
(干净的字符串,不能为\ n或\ r或空格)
"{'name':'newname'}"
(干净的字符串,不能使用\ n或\ r或空格)
如果文档值" "
(空格x4)
如果文档值"{'name':'newname'},{'name':'newname'},{'name':'newname'},..."
具有很多值的失败,可能是XOR算法(在C#中)
答案 0 :(得分:0)
在很多次尝试之后,我发现以下内容,因此不会发生此错误:
第1步像\n \r \t
那样清洁字符串并分开(规范化以使它们不超过4)。
步骤2 不超过发送的3 MB数据。
感谢您的帮助,希望对您有所帮助(我会发送图片,但仍然无法发送图片)