发送时出现Python3.5套接字包错误

2024-06-17 11:58:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在上Coursera的Python课程。我尝试使用Python3.5运行幻灯片中提供的以下示例代码:

import socket
mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect(('www.py4inf.com', 80))
mysock.send('GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n')

但是我收到了一个错误:

TypeError: a bytes-like object is required, not 'str'

有人知道怎么解决这个问题吗?我想这可能是因为Python的版本。课程使用的是python2.X


Tags: 代码importcom示例streamwwwsocket课程
1条回答
网友
1楼 · 发布于 2024-06-17 11:58:35

看看docs。它声明send接受一个bytes参数。您正在传递一个str。这也是错误消息所说的完全相同的事情。在

要使示例正常工作,请使用bytes文本:

mysock.send(b'GET http://www.py4inf.com/code/romeo.txt HTTP/1.0\n\n')

注意^{前面的b

我们的您可以encode您的字符串:

^{pr2}$

编辑:

你是对的:在python2中,socket.send期望一个str,正如可以看到的here

相关问题 更多 >