" Simple UDP replay from the state files " PackageLoader fileInPackage: #Sockets. Eval [ | last_time last_image udp_send socket dest | last_time := nil. last_image := nil. file := FileStream open: 'rtp_ssrc13529910.240.240.1_to_10.240.240.50.state'. "Send the payload" dest := Sockets.SocketAddress byName: '127.0.0.1'. socket := Sockets.DatagramSocket new. udp_send := [:payload | | datagram | datagram := Sockets.Datagram data: payload contents address: dest port: 4000. socket nextPut: datagram ]. [file atEnd] whileFalse: [ | lineStream time data now_image | lineStream := file nextLine readStream. "Read the time, skip the blank, parse the data" time := Number readFrom: lineStream. lineStream skip: 1. data := WriteStream on: (ByteArray new: 30). [lineStream atEnd] whileFalse: [ | hex | hex := lineStream next: 2. data nextPut: (Number readFrom: hex readStream radix: 16). ]. last_time isNil ifTrue: [ "First time, send it right now" last_time := time. last_image := Time millisecondClockValue. udp_send value: data. ] ifFalse: [ | wait_image new_image_time | "How long to wait?" wait_image := last_image + ((time - last_time) * 1000). [ wait_image > Time millisecondClockValue ] whileTrue: []. udp_send value: data. last_time := time. last_image := wait_image. ] ]. ]