socket send

Francesco Bochicchio bieffe62 at gmail.com
Thu Jul 30 12:29:24 CEST 2009


On Jul 30, 5:52 am, NighterNet <darkne... at gmail.com> wrote:
> I am trying to figure out how to send text or byte in python 3.1. I am
> trying to send data to flash socket to get there. I am not sure how to
> work it.
>
> buff= 'id=' , self.id , ':balive=False\n'
> clientSock.send(buff);

Try putting a 'b' before the constant string that you want to send:

>>> type(b'123')
<class 'bytes'>

or use something like this to convert non constant strings (with only
ASCII characters) into bytes:

>>> s = "A non-constant string : %d " % n
>>> s
'A non-constant string : 12 '
>>> type(s)
<class 'str'>
>>> b = bytes ( ord(c) for c in s )
>>> b
b'A non-constant string : 12 '

You could also use struct.pack , that in python 3.x returns bytes and
not strings. In this case you need to specify the size of the string
(extra
bytes are zero-filled):

import struct

>>> struct.pack( "30s", "A non-constant string : %d " % n )
b'A non-constant string : 12 \x00\x00\x00'



Ciao
-----
FB



More information about the Python-list mailing list