只对本地控制器收到的消息显示远程地址

This commit is contained in:
nnhy 2016-06-03 15:06:44 +00:00
parent 5bc7672164
commit 17d89d6eb6
2 changed files with 10 additions and 21 deletions

View File

@ -944,27 +944,16 @@ bool EspSocket::OnOpen()
// UDP传输属性。0收到数据不改变远端目标1收到数据改变一次远端目标2收到数据改变远端目标
if(Remote.Address == IPAddress::Broadcast())
cmd = cmd + ",2";
cmd += ",2";
else
cmd = cmd + ",0";
cmd += ",0";
// 如果Socket打开失败
if(!_Host.SendCmd(cmd))
{
String close = "AT+CIPCLOSE=";
close += _Index;
close += "\r\n";
/*auto sp = (SerialPort*)_Host.Port;
sp->Write(cmd);
Sys.Sleep(1000);
_Host.ClearRXD();*/
//if (!_Host.SendCmd(cmd))
if(!_Host.SendCmd(cmd, 1600))
{
debug_printf("协议 %d, %d 打开失败 \r\n", Protocol, Remote.Port);
return false;
}
}
// 清空一次缓冲区
/*cmd = "AT+CIPBUFRESET=";
@ -980,7 +969,7 @@ void EspSocket::OnClose()
cmd += _Index;
cmd += "\r\n";
_Host.SendCmd(cmd, 4000);
_Host.SendCmd(cmd, 1600);
}
// 接收数据

View File

@ -224,12 +224,12 @@ bool TokenController::OnReceive(Message& msg)
}
// 如果远程地址为空,则使用首次地址作为远程地址
auto svr = (IPEndPoint*)Server;
/*auto svr = (IPEndPoint*)Server;
auto rmt = (IPEndPoint*)msg.State;
if(svr && rmt)
{
if(svr->Address == IPAddress::Any()) svr->Address = rmt->Address;
}
}*/
ShowMessage("Recv", msg);
@ -294,7 +294,7 @@ void TokenController::ShowMessage(cstring action, const Message& msg)
{
auto svr = (IPEndPoint*)Server;
auto rmt = (IPEndPoint*)msg.State;
if (!svr || *svr != *rmt)
if (!svr || svr->Address == IPAddress::Broadcast())
{
rmt->Show();
debug_printf(" ");