Я подключен к устройству, которое я хочу запросить через сокеты. Я могу отправлять команды без проблем, но когда я пытаюсь вернуть данные, он будет отправлять их мне по частям, чтобы я никогда не получал сразу всего сообщения. Я прибегал к последовательности нескольких попыток, чтобы попытаться получить разные порции подряд, но я просто закончил последний кусок. Я думаю, что есть проблема с синхронизацией, но не уверен, также, текстовые поля не отображают текст, когда код сделан, я полагаю, что они должны хотя бы отображать часть того, что было получено. Любые предложения были бы очень полезныКак вы читаете весь буфер ввода с помощью TCP Client в C#?
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{}