simple-rtp.tcl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #
  2. # Copyright (c) 1997,1998,1999 Regents of the University of California.
  3. # All rights reserved.
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions
  6. # are met:
  7. # 1. Redistributions of source code must retain the above copyright
  8. #    notice, this list of conditions and the following disclaimer.
  9. # 2. Redistributions in binary form must reproduce the above copyright
  10. #    notice, this list of conditions and the following disclaimer in the
  11. #    documentation and/or other materials provided with the distribution.
  12. # 3. All advertising materials mentioning features or use of this software
  13. #    must display the following acknowledgement:
  14. #  This product includes software developed by the MASH Research
  15. #  Group at the University of California Berkeley.
  16. # 4. Neither the name of the University nor of the Research Group may be
  17. #    used to endorse or promote products derived from this software without
  18. #    specific prior written permission.
  19. # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  20. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  21. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  22. # ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  23. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  24. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  25. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  26. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  27. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  28. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  29. # SUCH DAMAGE.
  30. #
  31. # @(#) $Header: /cvsroot/nsnam/ns-2/tcl/ex/simple-rtp.tcl,v 1.5 1999/09/10 22:08:45 haoboy Exp $
  32. # updated to use -multicast on and allocaddr by Lloyd Wood
  33. set ns [new Simulator -multicast on]
  34. set n0 [$ns node]
  35. set n1 [$ns node]
  36. set n2 [$ns node]
  37. set n3 [$ns node]
  38. $ns color 1 red
  39. # prune/graft packets
  40. $ns color 30 purple
  41. $ns color 31 bisque
  42. # RTCP reports
  43. $ns color 32 green
  44. set f [open rtp-out.tr w]
  45. $ns trace-all $f
  46. set nf [open out.nam w]
  47. $ns namtrace-all $nf
  48. $ns duplex-link $n0 $n1 1.5Mb 10ms DropTail
  49. $ns duplex-link $n1 $n2 1.5Mb 10ms DropTail
  50. $ns duplex-link $n1 $n3 1.5Mb 10ms DropTail
  51. $ns duplex-link-op $n0 $n1 orient right
  52. $ns duplex-link-op $n1 $n2 orient right-up
  53. $ns duplex-link-op $n1 $n3 orient right-down
  54. $ns duplex-link-op $n0 $n1 queuePos 0.5
  55. set mproto DM
  56. set mrthandle [$ns mrtproto $mproto {}]
  57. set group [Node allocaddr]
  58. set s0 [new Session/RTP]
  59. set s1 [new Session/RTP]
  60. set s2 [new Session/RTP]
  61. set s3 [new Session/RTP]
  62. $s0 session_bw 400kb/s
  63. $s1 session_bw 400kb/s
  64. $s2 session_bw 400kb/s
  65. $s3 session_bw 400kb/s
  66. $s0 attach-node $n0
  67. $s1 attach-node $n1
  68. $s2 attach-node $n2
  69. $s3 attach-node $n3
  70. $ns at 1.4 "$s0 join-group $group"
  71. $ns at 1.5 "$s0 start"
  72. $ns at 1.6 "$s0 transmit 400kb/s"
  73. $ns at 1.7 "$s1 join-group $group"
  74. $ns at 1.8 "$s1 start"
  75. $ns at 1.9 "$s1 transmit 400kb/s"
  76. $ns at 2.0 "$s2 join-group $group"
  77. $ns at 2.1 "$s2 start"
  78. $ns at 2.2 "$s2 transmit 400kb/s"
  79. $ns at 2.3 "$s3 join-group $group"
  80. $ns at 2.4 "$s3 start"
  81. $ns at 2.5 "$s3 transmit 400kb/s"
  82. $ns at 4.0 "finish"
  83. proc finish {} {
  84. global ns f nf
  85. $ns flush-trace
  86. close $f
  87. close $nf
  88. puts "running nam..."
  89. exec nam out.nam &
  90. exit 0
  91. }
  92. $ns run