set ns [new Simulator]
#Use colors to differentiate the traffic
$ns color 1 Blue
$ns color 2 Red
$ns color 3 Green
$ns color 4 Yellow
$ns color 5 Cyan
$ns color 0 Black
#Open trace and NAM trace file
set ntrace [open pg2.tr w]
$ns trace-all $ntrace
set namfile [open pg2.nam w]
$ns namtrace-all $namfile
#Finish Procedure
proc Finish {} {
global ns ntrace namfile
#Dump all trace data and close the file
$ns flush-trace
close $ntrace
close $namfile
#Execute the nam animation file
exec 0
}
#Create six nodes
for {set i 0} {$i < 6} {incr i} {
set n($i) [$ns node]
}
#Create Links between nodes
for {set j 0} {$j < 4} {incr j} {
$ns duplex-link $n($j) $n(5) 1Mb 10ms DropTail
}
$ns duplex-link $n(5) $n(4) 1Mb 10ms DropTail
# Define a 'recv' function for the class 'Agent/Ping'
Agent/Ping instproc recv {from rtt} {
$self instvar node_
puts "node [$node_ id] received ping answer from $from with round-trip-time $rtt ms."
}
#connections
set p0 [$ns create-connection Ping $n(0) Ping $n(1) 1]
set p1 [$ns create-connection Ping $n(1) Ping $n(3) 2]
set p2 [$ns create-connection Ping $n(2) Ping $n(4) 3]
set p3 [$ns create-connection Ping $n(3) Ping $n(5) 4]
set p4 [$ns create-connection Ping $n(4) Ping $n(1) 0]
set p5 [$ns create-connection Ping $n(5) Ping $n(2) 5]
#Queue size is set to 2 to observe the drop in ping packets
$ns queue-limit $n(4) $n(5) 2
$ns duplex-link-op $n(4) $n(5) queuePos 0.5
#Schedule events
for { set i 0} {$i < 6} {incr i} {
for {set j 0} {$j < 6} {incr j} {
$ns at [expr $i+.1+$j/10] "$p0 send"
$ns at [expr $i+.1+$j/10] "$p1 send"
$ns at [expr $i+.1+$j/10] "$p2 send"
$ns at [expr $i+.1+$j/10] "$p3 send"
$ns at [expr $i+.1+$j/10] "$p4 send"
set ns [new Simulator]
#Use colors to differentiate the traffic
$ns color 1 Blue
$ns color 2 Red
$ns color 3 Green
$ns color 4 Yellow
$ns color 5 Cyan
$ns color 0 Black
#Open trace and NAM trace file
set ntrace [open pg2.tr w]
$ns trace-all $ntrace
set namfile [open pg2.nam w]
$ns namtrace-all $namfile
#Finish Procedure
proc Finish {} {
global ns ntrace namfile
#Dump all trace data and close the file
$ns flush-trace
close $ntrace
close $namfile
#Execute the nam animation file
exec nam prog4.nam &
}
#Create six nodes
for {set i 0} {$i < 6} {incr i} {
set n($i) [$ns node]
}
#Create Links between nodes
for {set j 0} {$j < 4} {incr j} {
$ns duplex-link $n($j) $n(5) 1Mb 10ms DropTail
}
$ns duplex-link $n(5) $n(4) 1Mb 10ms DropTail
# Define a 'recv' function for the class 'Agent/Ping'
Agent/Ping instproc recv {from rtt} {
$self instvar node_
puts "node [$node_ id] received ping answer from $from with round-trip-time $rtt ms."
}
#connections
set p0 [$ns create-connection Ping $n(0) Ping $n(1) 1]
set p1 [$ns create-connection Ping $n(1) Ping $n(3) 2]
set p2 [$ns create-connection Ping $n(2) Ping $n(4) 3]
set p3 [$ns create-connection Ping $n(3) Ping $n(5) 4]
set p4 [$ns create-connection Ping $n(4) Ping $n(1) 0]
set p5 [$ns create-connection Ping $n(5) Ping $n(2) 5]
#Queue size is set to 2 to observe the drop in ping packets
$ns queue-limit $n(4) $n(5) 2
$ns duplex-link-op $n(4) $n(5) queuePos 0.5
#Schedule events
for { set i 0} {$i < 6} {incr i} {
for {set j 0} {$j < 6} {incr j} {
$ns at [expr $i+.1+$j/10] "$p0 send"
$ns at [expr $i+.1+$j/10] "$p1 send"
$ns at [expr $i+.1+$j/10] "$p2 send"
$ns at [expr $i+.1+$j/10] "$p3 send"
$ns at [expr $i+.1+$j/10] "$p4 send"
$ns at [expr $i+.1+$j/10] "$p5 send"
}
}
$ns at 6.0 "Finish"
#Run the Simulation
$ns run
About Online Tcl Compiler
Try our Online Tcl Compiler (Version Tcl v8.6.6) to Edit, Run, and Share your Tcl Code directly from your browser. This online development environment provides you the latest version Tcl v8.6.6.
How to use Online Tcl Compiler?
Write and Execute Code
- Write your program (or, paste it) directly under the "Source Code" tab.
- If you want to save your program, go to the "Project" menu and save it.
- You can directly execute your program without saving it by clicking on on "Execute" button.
User Input
The latest version of Coding Ground allows to provide program input at run time from the termnial window exactly the same way as you run your program at your own computer. So simply run a program and provide your program input (if any) from the terminal window available in the right side.
Online Tcl Compiler: Keyboard Shortcuts
The following are the keyword shortcut of this Online Tcl Compiler:
Shortcut | Description |
⌘ + Enter | Run the program |
⌘ + S | Save Project (Login Required) |
⇧ + ⌘ + S | Save As Project |
⌘ + P | New Project |
⌘ + G | Share Project |
⌘ + Z | Undo Editing |
⌘ + Y | Redo Editing |
⌘ + A | Select All Text |
⌘ + X | Cut Selected Text |
⌘ + C | Copy Selected Text |
⌘ + V | Paste Copied Text |
⌘ + F | Search Text |
⌘ + ⌥ + F | Replace Text |
Shortcut | Description |
Ctrl + Enter | Run the program |
Ctrl + S | Save Project |
Shift + Ctrl + S | Save As Project |
Ctrl + G | Share Project |
Ctrl + Z | Undo Editing |
Ctrl + Y | Redo Editing |
Ctrl + A | Select All Text |
Ctrl + X | Cut Selected Text |
Ctrl + C | Copy Selected Text |
Ctrl + V | Paste Copied Text |
Ctrl + F | Search Text |
Ctrl + H | Replace Text |
Online Tcl Compiler: Save and Share Tcl Code (Project)
Save Tcl Project Online
You can save your Tcl Project with us so that you can access this project later on. To save a project you will need to create a login Id with us. So before you save a project, please create a login Id using a link given at the top right corner of this page.
Share Tcl Project Online
You can use this feature to share your Tcl Code with your teachers, classmates and colleagues. Just click Share Button and it will create a short link, which can be shared through Email, WhatsApp or even through Social Media. A shared link will be deleted if it has been passive for almost 3 months.
More Features of Online Tcl Compiler
- Theme – You can change the current editor's theme from the "Editor Theme" option under "Settings" menu.
- Font Size – You can change the font size of the editor /compiler from from the "Font Size" option under "Settings" menu.
- Tab Size – You can change the tab size from the "Tab Size" option under "Settings" Menu.
- Show/Hide Line Numbers – You can show/hide the line number with the code from the "Show Line Numbers" or "Hide Line Numbers" option under "Settings" Menu.
- And, many more.
Benefits of Using Online Tcl Compiler
There are several benefits of using the Online Tcl Compiler to run your Tcl code:
- Platform independence: You can run your code from any device without taking care of operating systems.
- Convenience: You don't need to install anything for using this.
- No setup required: There is no need for additional setup to run your code.
- Updated version: Our online compiler/editors/terminals are the latest up-to-date.