Test

  • 47
  • 0

Test


                string s = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<WMS>\r\n         <Device PServer=\"\" PDA=\""+ ModbusTcp.ipaddresss.ToString() + "\" UserID=\" \" ID=\"Y01\" Version=\"1.0.20.0\" logTime=\"27083943\">D-O-31</Device>\r\n        <RecordList>\r\n                <Vendors_NO>" +txt31041.Text+"</Vendors_NO>\r\n        </RecordList>\r\n</WMS>";
                Byte[] Buffer = System.Text.Encoding.Default.GetBytes((s + "\r\n"));
                Byte[] Length = new byte[4];
                Length = BitConverter.GetBytes(Buffer.Length);
                Array.Reverse(Length);
                try
                {
                    socket.Send(Length);
                    socket.Send(System.Text.Encoding.Default.GetBytes(s + "\r\n"));
                }
                catch (Exception ex)
                {
                    ModbusTcp.Connet = false;
                }
                //收資料長度
                byte[] Length_Buffer = new byte[4];
                ModbusTcp.socket.Receive(Length_Buffer);
                int Buffer_Length = Length_Buffer[0] * 256 * 256 * 256 + Length_Buffer[1] * 256 * 256 + Length_Buffer[2] * 256 + Length_Buffer[3];

                //收資料內容
                byte [] Receive_Buffer = new byte[Buffer_Length];
                ModbusTcp.socket.Receive(Receive_Buffer);

                //轉換
          //      var result = System.Text.Encoding.Default.GetString(Receive_Buffer);
                var result = System.Text.Encoding.UTF8.GetString(Receive_Buffer, 0, Buffer_Length);
                Thread.Sleep(30);

                while (true)
                {
                    if (ModbusTcp.socket.Available == 0)
                    {
                        break;
                    }
                    else
                    {
                        byte[] Receive_Buffer2 = new byte[ModbusTcp.socket.Available];
                        int leth2 = ModbusTcp.socket.Receive(Receive_Buffer2);
                        result = result + System.Text.Encoding.UTF8.GetString(Receive_Buffer2, 0, leth2);
                   //     result = result + System.Text.Encoding.Default.GetString(Receive_Buffer2, 0, leth2);
                    }
                }