首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Omnet++:设置从一个节点传输到另一个节点的消息总长度

Omnet++:设置从一个节点传输到另一个节点的消息总长度
EN

Stack Overflow用户
提问于 2016-02-03 22:04:42
回答 1查看 118关注 0票数 0

我的网络中有2个节点,它们之间的通信使用UDPBaiscApp。Node 1定期向node 2发送长度为10kb的报文,现在我想对Node 1拥有的数据大小进行限制。例如,如果节点1具有100kB的数据,并且它一次发送10kB,则在发送消息10次之后,通信应当结束。那么如何分配Node1可以拥有最大数据呢?

EN

回答 1

Stack Overflow用户

发布于 2016-02-04 07:18:19

您可以通过多种方式来完成此操作,例如这样:

1)在类UDPBasicApp定义中增加两个变量:

代码语言:javascript
复制
long alreadySentBytes;
long limitBytes;

2)在UDPBasicApp::initialise() fill initial中:

代码语言:javascript
复制
alreadySentBytes = 0;
limitBytes = 100 * 1024; // 100KB

3)在UDPBasicApp::sendPacket()中做如下修改:

代码语言:javascript
复制
void UDPBasicApp::sendPacket()
{
  if (alreadySentBytes < limitBytes) {
    std::ostringstream str;
    str << packetName << "-" << numSent;
    cPacket *payload = new cPacket(str.str().c_str());
    payload->setByteLength(par("messageLength").longValue());
    alreadySentBytes += par("messageLength").longValue();
    L3Address destAddr = chooseDestAddr();

    emit(sentPkSignal, payload);
    socket.sendTo(payload, destAddr, destPort);
    numSent++;
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35179232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档