---
# System prepended metadata

title: Working with first.cc file on ns-3
tags: [ns-3, Assignment2, first.cc]

---

## Working with first.cc 

Step 1 - Copy first.cc file from tutorial to scratch forlder.

note- never edit tutorials files. 



#include "ns3/applications-module.h"
#include "ns3/core-module.h"
#include "ns3/internet-module.h"
#include "ns3/network-module.h"
#include "ns3/point-to-point-module.h"

// Default Network Topology
//
//       10.1.1.0
// n0 -------------- n1
//    point-to-point
//

using namespace ns3;

NS_LOG_COMPONENT_DEFINE("FirstScriptExample");

int
main(int argc, char* argv[])
{
    CommandLine cmd(__FILE__);
    cmd.Parse(argc, argv);

    Time::SetResolution(Time::NS);
    LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
    LogComponentEnable("UdpEchoServerApplication", LOG_LEVEL_INFO);

    NodeContainer nodes;
    nodes.Create(2);

    PointToPointHelper pointToPoint;
    pointToPoint.SetDeviceAttribute("DataRate", StringValue("5Mbps"));
    pointToPoint.SetChannelAttribute("Delay", StringValue("2ms"));

    NetDeviceContainer devices;
    devices = pointToPoint.Install(nodes);

    InternetStackHelper stack;
    stack.Install(nodes);

    Ipv4AddressHelper address;
    address.SetBase("10.1.1.0", "255.255.255.0");

    Ipv4InterfaceContainer interfaces = address.Assign(devices);

    UdpEchoServerHelper echoServer(9);

    ApplicationContainer serverApps = echoServer.Install(nodes.Get(1));
    serverApps.Start(Seconds(1.0));
    serverApps.Stop(Seconds(10.0));

    UdpEchoClientHelper echoClient(interfaces.GetAddress(1), 9);
    echoClient.SetAttribute("MaxPackets", UintegerValue(1));
    echoClient.SetAttribute("Interval", TimeValue(Seconds(1.0)));
    echoClient.SetAttribute("PacketSize", UintegerValue(1024));

    ApplicationContainer clientApps = echoClient.Install(nodes.Get(0));
    clientApps.Start(Seconds(2.0));
    clientApps.Stop(Seconds(10.0));

    Simulator::Run();
    Simulator::Destroy();
    return 0;
}

![image](https://hackmd.io/_uploads/B193MdpyA.png)

### Changing port from 9 to 3689
![Uploading file..._4ws5xyauo]()


![image](https://hackmd.io/_uploads/Bku7VuTJR.png)


### Code for network Animation-

Add this code to first.cc

```
#include "ns3/netanim-module.h"
 AnimationInterface anim("first.xml");
    anim.SetConstantPosition(nodes.Get(0),10.0,10.0);
    anim.SetConstantPosition(nodes.Get(1),20.0,20.0); 
```

    
$ ./ns3 run scratch/first

This will generate first.xml file.

Execute first.xml by NetAnim tool.
$ ./NetAnim
![image](https://hackmd.io/_uploads/HJN99YpkC.png)

![image](https://hackmd.io/_uploads/SJqn5KTJC.png)

![image](https://hackmd.io/_uploads/rk4lsKp10.png)

Ascii Formate tracing

```
AsciiTraceHelper ascii;
pointToPoint.EnableAsciiAll(ascii.CreateFileStream("First.tr"));

```
![image](https://hackmd.io/_uploads/Ska15cpJ0.png)


### TraceMetrics

1- Download tracemetrics- https://sourceforge.net/projects/tracemetrics/
2- Extract

$ cd tracemetrics
$ java -jar tracemetrics.jar

Choose the file to run.

![image](https://hackmd.io/_uploads/B1HhK5aJ0.png)





    
    


