require 'date' require 'time' require 'socket' DATEFMT = '%Y%m%d%H%M%S' def recordify(msg) code = '%-31s' % 'DERP' num = '%-12d' % (rand.to_s.tr('.', '0')[0,5]).to_i timestamp = Time.now.strftime(DATEFMT) len = '%-6d' % msg.length "#{code}#{num}#{len}#{timestamp}#{msg.gsub(/\r/, '\r').gsub(/\n/, '\n')}\r\n" end def main print "What to say?: " msg = gets TCPSocket.open('127.0.0.1', 15778) do |sock| sock.send(recordify(msg), 0) response = sock.recv(66) sock.close puts "raw response --> #{response.inspect}" code = response[0,31].to_s.strip num = response[31,12].to_s.strip raw_timestamp = response[49,14].to_s.strip timestamp = DateTime.strptime(raw_timestamp, DATEFMT) puts "code: '#{code}'" puts "num: '#{num}'" puts "timestamp: '#{timestamp}'" end end if __FILE__ == $0 main end