At Sun, 26 Jul 2015 22:42:48 -0700 (PDT), Слава ПолноеИмя wrote:
> Sorry, list, for dumb unprofessional question, but I'm not even amateur 
> programmer)
> How can I convert string and floats to bytes, that can be passed to udp-send? 
> Tried real->floating-point-bytes and string->bytes/utf-8 but it produces not 
> compatible output. 

The `real->floating-point-bytes` bytes conversion gives you a machine
representation of number. To convert bytes back to a number, you'd use
`floating-point-bytes->real`.

Alternatively, you could use `number->string` to get a human-readable
encoding of a number, and then using `string->bytes/utf-8` to encode
the string into bytes. The reverse would be `bytes->string/utf-8` and
then `string->number`.


> Any best practices of forming udp datagrams in racket exists?

A more general strategy would be to use `write` to convert anything to
bytes, then then use `read` to convert back from a byte string to the
value. The `read` and `write` functions work on ports, and some ports
can write to or read from a byte string. This approach works for
numbers, strings, symbols, lists, and other things that can round-trip
with `read` and `write`.

(define (value->bytes v)
  (define o (open-output-bytes))
  (write v o)
  (get-output-bytes o))

(define (bytes->value bstr)
  (define i (open-input-bytes bstr))
  (read i))

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to