110,538
社区成员
发帖
与我相关
我的任务
分享
_tcpPro.WriteData(code);
string nextcmd = "";
if (cmd.nextCarCommand != null)
{
nextcmd = cmd.nextCarCommand.getCode();
}
string lastback = "";
string t_cmmback = _tcpPro.ReadData(Constants.backlength, Constants.DefaultBack);
while (!t_cmmback.Contains(Constants.DefaultBack))
{
//读取的内容很少的情况下 ,可能是网络因素造成的,这时候再进行一次拼接 。
lastback = t_cmmback;
t_cmmback = _tcpPro.ReadData(Constants.backlength, Constants.DefaultBack);
}
{
//_networkStream.ReadTimeout = 240000;
if (_tcpClient != null && _networkStream != null)
{
string first = "";
string second = "";
int trycount = 0;
while ((first != "A0") || (second != "B0"))
{
if (!_networkStream.DataAvailable)
{
trycount++;
if (trycount > 20)
{
return _readBuffer;
}
Thread.Sleep(10);
continue;
}
public void WriteData(byte[] data)
{
try
{
if (_tcpClient != null && _networkStream != null)
{
//_networkStream.BeginWrite()
// _networkStream.Write(data, 0, data.Length);
IAsyncResult ar = _networkStream.BeginWrite(data, 0, data.Length, null, null);
if (!ar.AsyncWaitHandle.WaitOne())
{
ExceptionBase eb = new ExceptionBase(ExceptionLevel.Error, "车辆编号:" + _tcpClientOBJ.AgvID + "写入数据异常:!ar.AsyncWaitHandle.WaitOne()");
ExceptionManager.DoException(eb);
}
_networkStream.EndWrite(ar);
}
}
catch (Exception ex)
{
throw new Exception(_tcpClientOBJ.AgvID, ex);
}
}
不知道是不是ar.AsyncWaitHandle.WaitOne())的影响 。但这个方法实际已经结束。