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);
}
}