Я подключен к устройству, которое хочу запрашивать через сокеты. Я могу отправлять команды без проблем, но когда я пытаюсь вернуть данные, они отправляют их мне порциями, так что я никогда не получаю все сообщение сразу. Я прибег к множественной последовательности try-catch, чтобы попытаться последовательно получить разные порции, но в итоге я получаю последний фрагмент. Я думаю, что есть проблема синхронизации, но не уверен, также, текстовые поля не показывают никакого текста, когда код готов, я думаю, что они должны по крайней мере отображать некоторую часть того, что было получено. Любые предложения будут высоко оценены
Byte[] Backdata = new byte[64]; //also tried 32, 16, 64
MoxaClient = new TcpClient();
MoxaClient.Connect(NportAddress, NportPort);
datastream = MoxaClient.GetStream();
datastream.Write(SCPIcommands, 0, SCPIcommands.Length);
//Function to wait for all responses
try
{
datastream.Read(Backdata, 0, Backdata.Length);
textBox1.Text += Convert.ToChar(Backdata.ToString());
}
catch
{}
try
{
datastream.Read(Backdata, 4, Backdata.Length);
textBox1.Text += Convert.ToChar(Backdata.ToString());
}
catch{}