- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一些套接字 IO,并使用 bytearray 对象作为缓冲区。我想使用 csock.recv_into 接收带有偏移量的数据,如下所示,以避免创建中间字符串对象。不幸的是,似乎字节数组不能以这种方式使用,并且下面的代码不起作用。
buf = bytearray(b" " * toread)
read = 0
while(toread):
nbytes = csock.recv_into(buf[read:],toread)
toread -= nbytes
read += nbytes
所以我使用下面的代码,它确实使用临时字符串(并且有效)...
buf = bytearray(b" " * toread)
read = 0
while(toread):
tmp = csock.recv(toread)
nbytes = len(tmp)
buf[read:] = tmp
toread -= nbytes
read += nbytes
有没有一种更优雅的方法来做到这一点,不需要复制中间字符串?
最佳答案
使用memoryview
来包装您的bytearray
:
buf = bytearray(toread)
view = memoryview(buf)
while toread:
nbytes = sock.recv_into(view, toread)
view = view[nbytes:] # slicing views is cheap
toread -= nbytes
关于sockets - 将 bytearray 与 socket.recv_into 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15962119/
我正在通过运行 wince 的相机的套接字传输图像 :(相机中的图像只是使用 realloc 为给定的 x * y 大小创建的 float 组 在另一端,我在 python 中接收这些图像。我有这段代
我正在做一些套接字 IO,并使用 bytearray 对象作为缓冲区。我想使用 csock.recv_into 接收带有偏移量的数据,如下所示,以避免创建中间字符串对象。不幸的是,似乎字节数组不能以这
我有一个 Python 库,它使用 ctypes 向 C 库注册回调。回调的签名是: CFUNCTYPE(c_int_32, c_uint_32, POINTER(c_byte), POINTER(c
Socket 模块有一个socket.recv_into 方法,因此它可以使用用户自定义的bytebuffer(如bytearray)进行零拷贝。但也许 BaseEventLoop 没有这样的方法。有
我一直在使用python3.6捕获高速udp流,并尝试了socket.recv()和socket.recv_into()。我期望recv_into()更快,因为每次读取数据包并将其附加到列表后,它都会
我有一个非常基本的 http.server.HTTPServer 实现,我正在 Python 3.6 中启动。我正在使用它根据 google Analytics API 对 OAuth2 进行身份验证
我是一名优秀的程序员,十分优秀!