首先,我正在使用C#编程。我通过套接字将大小不同的数据写入设备。在写入数据后,我想从套接字中读取数据,因为设备在处理完所有数据后会返回一个错误代码/完成消息。目前我的代码大致如下:
byte[] resultErrorCode = new byte[1];
resultErrorCode[0] = 255;
while (resultErrorCode[0] == 255)
{
try
{
ReadFromSocket(ref resultErrorCode);
}
catch (Exception)
{
}
}
Console.WriteLine(ErrorList[resultErrorCode[0] - 48]);
我在其他地方使用
ReadFromSocket
,所以我知道它正常工作。结果出现的情况是,我连接的端口(在我的计算机上)会更改为随机端口。我认为这会导致另一侧固件连接不良。因此,当我在另一侧写入数据时,它会尝试将数据写入我最初连接的端口,但经过多次读取后,连接端口在我的一侧发生了更改。如何连续从套接字中读取,直到收到完成命令?如果我知道循环出了问题,因为对于我的最小测试文件,它需要1分13秒左右的时间。我通过删除循环并使代码休眠1分15秒来测试代码。当重新启动时,它成功读取了我期望的完成命令。有人有什么建议吗?