NS3 MyApp Class Reference
官方文档:MyApp
可以在下面的几个例子找到:
examples/tutorial/fifth.cc
examples/tutorial/seventh.cc
examples/tutorial/sixth.cc
SetUp函数
class MyApp : public Application
{
public:MyApp ();virtual ~MyApp();void Setup (Ptr<Socket> socket, Address address, uint32_t packetSize, uint32_t nPackets, DataRate dataRate);private:virtual void StartApplication (void);virtual void StopApplication (void);void ScheduleTx (void);void SendPacket (void);Ptr<Socket> m_socket;Address m_peer;uint32_t m_packetSize;uint32_t m_nPackets;DataRate m_dataRate;EventId m_sendEvent;bool m_running;uint32_t m_packetsSent;
};MyApp::MyApp (): m_socket (0),m_peer (),m_packetSize (0),m_nPackets (0),m_dataRate (0),m_sendEvent (),m_running (false),m_packetsSent (0)
{
}MyApp::~MyApp()
{m_socket = 0;
}void
MyApp::Setup (Ptr<Socket> socket, Address address, uint32_t packetSize, uint32_t nPackets, DataRate dataRate)
{m_socket = socket;m_peer = address;m_packetSize = packetSize;m_nPackets = nPackets;m_dataRate = dataRate;
}void
MyApp::StartApplication (void)
{m_running = true;m_packetsSent = 0;m_socket->Bind ();m_socket->Connect (m_peer);SendPacket ();
}void
MyApp::StopApplication (void)
{m_running = false;if (m_sendEvent.IsRunning ()){Simulator::Cancel (m_sendEvent);}if (m_socket){m_socket->Close ();}
}void
MyApp::SendPacket (void)
{Ptr<Packet> packet = Create<Packet> (m_packetSize);m_socket->Send (packet);if (++m_packetsSent < m_nPackets){ScheduleTx ();}
}void
MyApp::ScheduleTx (void)
{if (m_running){Time tNext (Seconds (m_packetSize * 8 / static_cast<double> (m_dataRate.GetBitRate ())));m_sendEvent = Simulator::Schedule (tNext, &MyApp::SendPacket, this);}
}static void
CwndChange (uint32_t oldCwnd, uint32_t newCwnd)
{NS_LOG_UNCOND (Simulator::Now ().GetSeconds () << "\t" << newCwnd);
}static void
RxDrop (Ptr<const Packet> p)
{NS_LOG_UNCOND ("RxDrop at " << Simulator::Now ().GetSeconds ());
}
NS3 MyApp Class Reference相关推荐
- WPF笔记(1.1 WPF基础)——Hello,WPF!
WPF笔记(1.1 WPF基础)--Hello,WPF! 原文:WPF笔记(1.1 WPF基础)--Hello,WPF! Example 1-1. Minimal C# WPF application ...
- ValueError: The field admin.LogEntry.user was declared with a lazy reference to ‘MyApp.sysusers‘
问题描述 E:\SweetYaya\MyProj03>python manage.py migrate Operations to perform:Apply all migrations: M ...
- Kubernetes:应用部署、应用了解、应用公布、应用伸缩,-image=ikubernetes/myapp:v1
k8s基础命令:https://kubernetes.io/zh/docs/reference/kubectl/kubectl-cmds/ k8s基础知识:https://kubernetes.io/ ...
- NS3 Tutorial 中文版:第三章 快速上手
[声明]允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. http://yangfei1.blog.51cto.com/1471532/368586 ht ...
- spring boot 2.5.5 reference chapter 5 生词
5 Upgrading Spring Boot check the "migration guide" on the project wiki that provides deta ...
- Spring Boot 3.0.0-M1 Reference Documentation(Spring Boot中文参考文档)-附录A-C
附录 附录A:常用的应用程序属性 多种属性可以指定到application.properties文件,application.yml文件内,或者作为命令行开关.这个附录提供常用的Spring Boot ...
- implement tcp bbr on ns3 (在ns3上实现TCP BBR)
After several days of work and debug, I implement TCP BBR algorithms on ns3.33. One thing is to ge ...
- ns3—— sixth.cc 大概理解
sixth.cc 总的来说就是下面这么个结构,目的:node0 要向 node1 发送TCP消息. node 0 node 1 +----------------+ +---------------- ...
- NS3 sixth.cc注释
文章目录 前言 一.sixth.cc 二.运行结果 总结 前言 NS3 sixth.cc注释 最近在学NS3,tutorial的1-4代码注释都有很多帖子,但是5.6缺很少.所以贴一下查找后的代码及注 ...
最新文章
- UVa 10820 (打表、欧拉函数) Send a Table
- 网络攻防-20169213-刘晶-第六周作业
- python读音发音器-python3 - 文本读音器
- [Win32::Console]Perl终端版生命游戏
- typedef 用法总结
- 并行多机调度遗传算法调参记录---变异和淘汰哪个更重要?
- 汤家凤高等数学基础手写笔记-空间解析几何
- GMQ发行稳定币将进一步打破稳定币市场垄断格局
- 锐起无盘服务器安装教程,锐起无盘安装方法 图文教程
- ECSHOP批量添加商品到购物车
- ffmpeg 转换flv压缩大小_ffmpeg转换参数和压缩输出大小的比率 参考 最新版本FFMPEG...
- 基于java ssm springboot选课推荐交流平台系统设计和实现
- 同频切换的事件_LTE前台路测切换问题处理大礼包
- 将Unix时间戳字符串转换为可读日期
- JSK-383 是否闰年(课后)【入门】
- zedboard linux内核下载,zedboard学习-为Linux内核打补丁
- C++统计博客园写过的代码行数
- 关于垂直列行值转成水平行值及多列值转合并成单列值
- interlib系统服务器,Interlib图书馆集群管理系统.docx
- java 获取 国家_Java中Locale.getDefault()方法获取本地国家代码