目前,我正在开发一个由 200 个传感器节点组成的网络模拟器。在我的代码中,我需要每个节点向其邻居发送 hello 数据包。在上一步中,我编写了一段代码,将 hello 消息从特定节点广播到其邻居(它们是传感器节点)。现在,我需要这些传感器节点将其队列中的 hello 数据包重新转发给其邻居。我需要检查传感器节点的队列是否已经有一个 hello 数据包,以便将其重新转发到该传感器节点的邻居。。。
例如,我创建了这样的 hello :
Packet hello = new Packet(CNs[i].cnID, i, i, 0, CNs[i].cnDepth, DateTime.Now, "Hello, I am a Courier node near of you");
数据包声明如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AUV_Topology
{
class Packet
{
public int senderID;
public int nextID;
public int recieverID;
public int packetSequenceNum;
public int depth;
public DateTime sendingTime;
public String data;
public Packet(int sID, int nID, int rID, int pSecNum, int depth,DateTime sTime, String data)
{
this.senderID = sID;
this.nextID = nID;
this.recieverID = rID;
this.packetSequenceNum = pSecNum;
this.depth = depth;
this.sendingTime = sTime;
this.data = data;
}
}
}
为了确保传感器节点队列有从另一个节点收到的 hello 数据包,我使用“foreach”并检查列表中的每个数据包是否包含“Hello,我是您附近的 Courier 节点”...
不幸的是,我尝试使用
SNs[i]queue.contains("Hello, I am a Courier node near of you");
其中SN[i]是传感器节点数组,队列是声明如下的属性:
public List<Packet> queue = new List<Packet>();
但我收到语法错误:
参数 1:无法从“string”转换为“AUV_Topology.Packet”AUVs_TOPOLOGY
我怎样才能做到这一点?
这是一个可能的解决方案吗:
for(int j=0; j < NodeNum; j++)
{
if (SNsNighbors[i, j] == 1)
{
String temp = SNs[i].queue.ToString();
if (temp.Contains("Hello"))
{
}
}
}
慕姐4208626