简体   繁体   中英

How to send byte array using twisted python

Here, in sendQuote method I want to send a byte array but twisted provides transport write method which takes string. How can i send a byte array in response using Twisted. Thanks.

class QuoteProtocol(protocol.Protocol):
  def __init__(self, factory):
    self.factory = factory

  def connectionMade(self):
    self.sendQuote()

  def sendQuote(self):
    #self.file.write(bytearray([0x00, 0x31, 0x34, 0x32, 0x30, 0x30, 0x30, 0x30, 0x31, 0x11, 0x0c, 0x00, 0xfd, 0x09, 0x00, 0x2f, 0xe7, 0x5e, 0x3a, 0x08, 0x3c, 0x00, 0x00, 0x00, 0x49, 0x95]))
    self.transport.write("Quote reecevied")

  def dataReceived(self, data):
    print "Received quote:", data
    self.transport.loseConnection()

Why do you want to send a bytearray ? Python's native string type is effectively an array of bytes - an immutable one. As you've already observed, transport.write will accept a string. So it will let you send whatever array of bytes you've got that you need to send.

If you have some data around that is already in a bytearray instance for some good reason then you can construct a bytes instance from it using easily: bytes(your_bytearray) .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM