Bladeren bron

调整数据发送

yhluo 1 maand geleden
bovenliggende
commit
5a193263bc
1 gewijzigde bestanden met toevoegingen van 24 en 13 verwijderingen
  1. 24 13
      UAS_MES_HYSX/FunctionCode/Make/Make_ListenSocket.cs

+ 24 - 13
UAS_MES_HYSX/FunctionCode/Make/Make_ListenSocket.cs

@@ -141,8 +141,9 @@ namespace UAS_MES_NEW.Make
                         LogicHandler.DoCommandLog(Tag.ToString(), User.UserCode, omakeCode, User.UserLineCode, User.UserSourceCode, "产测软件对接", "产测软件对接成功", serial, "");
                         ShowMsg(1, $"序列号: {serial} 过站处理成功");
                     }
-                } 
+                }
 
+                //string newJsonData = "{\"Name\":\"VerifyResult\",\"Data\":\"{\"ErrorCode\":\"0\",\"ErrorMsg\":\"\",\"Serial\":\"" + serial + "\"}\"}";
                 VerifyResultMessage message = new VerifyResultMessage
                 {
                     Name = "VerifyResult",
@@ -154,7 +155,6 @@ namespace UAS_MES_NEW.Make
                     }
                 };
                 string jsonMessage = JsonConvert.SerializeObject(message, Formatting.None);
-
                 string sendMsg = _server.SendMessage(e.ClientId, jsonMessage);
 
                 ShowMsg(sendMsg.StartsWith("OK") ? 1 : 0, sendMsg);
@@ -590,26 +590,37 @@ namespace UAS_MES_NEW.Make
                         return $"NG,客户端 {clientId} 连接已断开";
                     }
 
-                    byte[] jsonBytes = Encoding.Unicode.GetBytes(jsonMessage);  // UTF-16 LE编码
-                    long length = jsonBytes.Length;  // UTF-16字节长度
-
-                    byte[] packet = new byte[8 + jsonBytes.Length];  // 8字节长度头
-                                                                     // 8字节小端序(与客户端4字节小端序对应,只是扩展为8字节)
+                    var utf16LE = new UnicodeEncoding(false, false);
+                    byte[] jsonBytes = utf16LE.GetBytes(jsonMessage);
+                    long length = jsonBytes.Length;
+                    byte[] packet = new byte[4 + jsonBytes.Length + 2];
+                    // 大端序
+                    /*packet[0] = (byte)(length >> 24);
+                    packet[1] = (byte)(length >> 16);
+                    packet[2] = (byte)(length >> 8);
+                    packet[3] = (byte)(length);*/
+
+                    // 小端序
                     packet[0] = (byte)(length);
                     packet[1] = (byte)(length >> 8);
                     packet[2] = (byte)(length >> 16);
                     packet[3] = (byte)(length >> 24);
-                    packet[4] = (byte)(length >> 32);
-                    packet[5] = (byte)(length >> 40);
-                    packet[6] = (byte)(length >> 48);
-                    packet[7] = (byte)(length >> 56);
+                    Array.Copy(jsonBytes, 0, packet, 4, jsonBytes.Length);
+                    packet[packet.Length - 2] = 0x00;
+                    packet[packet.Length - 1] = 0x00;
 
-                    Array.Copy(jsonBytes, 0, packet, 8, jsonBytes.Length);
                     clientSocket.BeginSend(packet, 0, packet.Length, SocketFlags.None,
                         new AsyncCallback(SendCallback),
                         new { ClientId = clientId, ClientSocket = clientSocket });
 
-                    return $"OK,发送成功,JSON长度: {jsonMessage.Length}, 报文总字节: {packet.Length} 到 {clientId}";
+                    string result2 = BitConverter.ToString(packet).Replace("-", " ");
+                    return $"OK,发送成功,JSON长度: {jsonMessage.Length}, 报文总字节: {packet.Length} 到 {clientId},({result2})({jsonMessage})";
+
+                    //byte[] jsonBytes = Encoding.Unicode.GetBytes(jsonMessage);
+                    //clientSocket.BeginSend(jsonBytes, 0, jsonBytes.Length, SocketFlags.None,
+                    //    new AsyncCallback(SendCallback),
+                    //    new { ClientId = clientId, ClientSocket = clientSocket });
+                    //return $"OK,发送成功,JSON长度: {jsonMessage.Length}, 报文总字节: {jsonBytes.Length} 到 {clientId}";
                 }
                 catch (Exception ex)
                 {