#include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/internet-module.h" #include "ns3/point-to-point-module.h" #include "ns3/applications-module.h" #include "ns3/netanim-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(2.0)); serverApps.Stop(Seconds(10.0)); UdpEchoClientHelper echoClient(interfaces.GetAddress(1), 9); echoClient.SetAttribute("MaxPackets", UintegerValue(2)); echoClient.SetAttribute("Interval", TimeValue(MilliSeconds(50))); // Set interval to 50 ms echoClient.SetAttribute("PacketSize", UintegerValue(1024)); ApplicationContainer clientApps = echoClient.Install (nodes.Get (0)); clientApps.Start(Seconds(2.0)); clientApps.Stop(Seconds(10.0)); AnimationInterface anim ("anim1.xml"); Simulator::Run (); Simulator::Destroy (); return 0; }