LinuxForum.Fans
Тема

Разбираю код на tcl. Нужна помощь и советы

Автор: halo 2 сообщений 1110 просмотров
#62650

Здравствуйте, дамы и господа.
Разбираю код на tcl. Кусок кода понять не могу, нужен совет.

text

# Printing the window size
proc plotWindow {tcpSource file} {        # имена переменных использующихся внутри процедуры
global ns                                 # объявляем переменную ns как “глобальную”,
                                          # влияющую на внешние переменные
set time 0.01                             # переменной time присваиваем значение 0.01
set now [$ns now]                         # обращение к симулятору с запросом о текущем времени
                                          # и присвоением его значания переменной “now” [3, стр. 34]
set cwnd [$tcpSource set cwnd_]           # ЗДЕСЬ НЕПОНЯТНО!!!!!!!!!!!!!!!!!!!!!!!!!!!
puts $file "$now $cwnd"
$ns at [expr $now+$time] "plotWindow $tcpSource $file" }
$ns at 1.1 "plotWindow $tcp $windowVsTime2"    

Квадратные скобки. При появлении в поле команды открывающей квадратной скобки выполняется подстановка команды. Все символы внутри скобок считаются командой, и она исполняется немедленно. Затем результат этого исполнения подставляется вместо текста в скобках. Например, рассмотрим команду “set a [set b]”. Когда у команды set задан только один аргумент, тогда это есть имя переменной, и set возвращает значение этой переменной. В этом случае, если переменная b имеет значение ‘foo’, то предыдущая команда эквивалентна команде “set a foo” [4].

#62660

set cwnd - это, вероятно, установка первоначального соединения в протоколе TCP, препятствующая возникновению тайм-аутов и потерю пакетов.
т.е. смысл думаю такой:
set now [$ns now] // запрос о текущем времени
set cwnd [$tcpSource set cwnd_] // установка соединения http://www.soslan.ru/tcp/tcp21.html
puts $file "$now $cwnd" // положить значения переменных $now и $cwnd в переменную $file

но может я и ошибаюсь...

Войдите или зарегистрируйтесь, чтобы ответить.