- 博客(45)
- 资源 (4)
- 收藏
- 关注
转载 以wifi-example-sim.cc为例说明NS3统计数据模型
利用NS3已有的Trace系统或者Log机制收集记录和统计数据,例如MAC层收发帧数目,网络层以上收发包数目的跟踪与统计,这里选取example/stats/wifi-example-sim.cc为例来很好说明问题
2017-10-19 10:39:01 1176
原创 NS3的ObjectFactory类
一个经常使用的创建对象的方法是:调用CreateObject(),在ns3中,也可以使用ObjectFactory类。
2017-10-18 19:45:21 1293
原创 NS3中的Ptr类
ns3中的类ns3是以c++的类为基础的系统,想要深刻理解学习ns3必须要学习它常用的类,以及类与类之间的关系。在ns3中,每个c++规则照样可以用,比如对象可以声明和实例化。总的来说,ns3中常用到c++的抽象,继承,封装,多态等概念。
2017-10-18 18:40:11 3031
原创 NS3生成随机数
ns3可以产生随机数。 先把代码和运行结果展示一下:#include "ns3/core-module.h"#include "ns3/random-variable-stream.h"
2017-10-16 20:05:09 2781
转载 NS3命令行学习
NS3提供了一种通过命令行传递参数来输出和改变脚本中的变量。 在使用命令行机制时,一 首先要声明一个命令行类的对象然后调用其函数成员
2017-10-16 09:22:36 1457 1
原创 Linux常见的压缩命令
Linux上常见的压缩命令就是gzip和bzip2,后者性能更好。compress不再流行。 tar功能仅是打包,把很多文件集
2017-10-12 19:16:03 4783 1
原创 重载,重写,重定义
(1)重载必须发生在一个类中 (2)重写必须发生在父类和子类之间,相同的函数原型 (3)重写有两种,加virtual->多态,不加->重定义一个程序说明
2017-09-24 15:49:24 302
转载 c++小项目(学生信息管理系统)
【程序阅读】阅读并运行下面的程序,找出其中出现构造函数、友元函数、运算符重载、静态数成员语法现象出现的位置,仔细体会其用法,在以后的设计中能够灵活应用有关方法和技巧.
2017-09-24 14:43:30 18718 12
转载 深拷贝和浅拷贝
浅拷贝 所谓浅拷贝,指的是在对象复制时,只对对象中的数据成员进行简单的赋值,默认拷贝构造函数执行的也是浅拷贝。大多情况下“浅拷贝”已经能很好地工作了,但是一旦对象存在了动态成员,那么浅拷贝就会出问题了
2017-09-20 20:18:11 295
原创 NS3 Logging Module 日志模块
一 概述日志 日志是快速获得脚本和模型的调试信息、警告信息、错误信息或者其他信息的首选。 NS3日志模块提供了一个直观的、相对简单的方法来获取仿真过程中的有用信息。
2017-08-31 14:23:55 1252
原创 处理SIGCHLD信号(CS模型改进4)
在上篇博客提到的SIGCHLD信号就是由内核在任何一个进程终止时发给它的父进程的一个信号。那我们怎么处理僵死进程呢?处理僵死进程我们显然不愿意存留僵死进程。它占用内核空间,最终可能导致我们耗尽进程资源,无论何时我们fork子进程都要wait它们,以防止它们变成僵死进程。
2017-08-17 11:10:32 238
原创 TCP状态测试(CS模型改进3)
本文测试TCP的11中状态,更深入理解CS模型。尽管我们TCP程序很小,然而对于我们弄清客户和服务器如何启动,如何终止,更为重要的是当发生某些错误(例如客户主机崩溃,客户进程崩溃,网络连接断开,等等)时将会发生什么,本例十分重要。只有弄清这些边界条件以及TCP/IP协议的相互作用,我们才能写出能够处理这些情况的健壮的客户和服务器程序。
2017-08-17 10:26:24 416
原创 socket编程之解决流协议的粘包问题(二)
背景常见的应用层协议都是带有可变长字段的,字段之间的分隔符用换行'\n'的比用'\0'的更常见,如HTTP协议。可变长字段的协议用readn来读就很不方便了,为此我们实现一个类似于fgets的readline函数。
2017-08-11 15:16:38 468
原创 socket编程之解决流协议的粘包问题(一 )
流协议和粘包这么说吧,TCP在传输数据的时候,是不区分边界的(数据和数据之间没有边界),因为是基于字节流,所以数据对TCP来说就是一大堆没有结构区别的字节块。那意味着什么?意味着TCP并不能对多个数据的整体的信息进行区分(打个比方:就像是你说一堆话没有标点符号全部连在一起,别人很可能弄错)或者对单个整体信息的错误区分(比如你要发送的整块数据被分成了好几块发送,然后这些数据在传输过程中可能由于网络原因
2017-08-11 14:32:20 1419 1
转载 SO_REUSEADDR用法
1、一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用。SO_REUSEADDR用于对TCP套接字处于TIME_WAIT状态下的socket,才可以重复绑定使用。server程序总是应该在调用bind()之前设置SO_REUSEADDR套接字选项。TCP,先调用close()的一方会进入TIME_WAIT状态。SO_REUSEADDR提
2017-08-11 14:08:31 1296
原创 基于linux系统的CS模型实现
(一) CS模型也就是TCP的客户/服务器模型,我们这里用一个简单的回射客户/服务器模型来进行模拟验证。客户发送数据,服务器接收到数据,并将数据原封不动的返回给客户端。
2017-08-11 11:00:57 1106
原创 通信信号与系统分析(四 基于simulink仿真)
Simulink是一个用来对动态系统进行建模仿真和分析的软件包,它提供了一种图形化的交互环境,易学易用,simulink是MATLAB下的一个软件包,在MATLAB主页菜单上有simulink库的按钮,打开simulink:
2016-09-28 20:22:17 9125 4
原创 通信信号与系统分析(三 模拟调制)
本篇讨论各种模拟调制与解调系统的性能,包括幅度调制(AM)和角度调制(包括频率调制(FM)和相位调制(PM))。
2016-09-28 10:32:26 6550 2
转载 MATLAB的S文件编写
Part I:所谓s函数是system Function的简称, 用它来写自己的simulink模块. s函数可以用matlab、C、C++、Fortran、Ada等语言来写, 这儿我只介绍怎样用matlab语言来写吧(主要是它比较简单) < xmlnamespace prefix =”o” ns =”urn:schemas-microsoft-com:office:office” />先讲讲为什么
2016-09-12 21:00:18 2121 1
转载 STM32中GPIO的8种工作模式!
一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流
2016-08-31 20:49:12 3587
原创 Linux多线程编程(初步)
1.Linux进程与线程Linux进程创建一个新线程时,线程将拥有自己的栈(因为线程有自己的局部变量),但与它的创建者共享全局变量、文件描述符、信号句柄和当前目录状态。Linux通过fork创建子进程与创建线程之间是有区别的:fork创建出该进程的一份拷贝,这个新进程拥有自己的变量和自己的PID,它的时间调度是独立的,它的执行几乎完全独立于父进程。进程可以看成一个资源的基本单位,而线程是程序调度的基
2016-08-24 14:09:14 488
原创 信号
(1)信号基本概念信号是linux所使用的进程间通信的最古老的方式。它采用中断机制,是一种异步通信的方式 。一个完整的信号周期包括三个部分,信号的产生,信号在进程中的注册,信号在进程中的注销,执行信号处理函数。(2)信号发送信号的发送通过kill函数和raise函数,两者的区别在于raise函数可以向本进程发送信号。 (a)kill:使用kill命令,向指定进程发送信号。1 #include <s
2016-08-24 08:42:48 417
笨方法学python(Learn Python the Hard Way中文第三版)
2017-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人