第29行,在"<module> s.sendall(message)"处 TypeError:'str'不支持缓冲接口
在编程中,我们常常会遇到一些问题,特别是在使用某些工具或库的时候。有时候,错误信息可能会让人感到困惑,不知道该怎么解决。比如,有人可能会在使用某个功能时,看到提示说“找不到某个文件”或者“某个参数不正确”。这些信息虽然很简短,但其实它们是在告诉我们哪里出了问题。
当我们遇到这些问题时,首先要冷静下来,仔细阅读错误信息。很多时候,错误信息中会包含一些线索,帮助我们找到解决办法。比如,可能会提到具体的文件名或者行号,这些都是我们排查问题的重要信息。
此外,查阅相关的文档或者在网上搜索错误信息也是一个好办法。很多时候,其他人也遇到过类似的问题,他们可能已经分享了解决方案。通过这些方式,我们可以更快地找到问题的根源,并且学到更多的知识。
总之,遇到问题时不要慌张,仔细分析错误信息,利用好网络资源,通常都能找到解决办法。
import socket
import sys
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
print ('Failed to create socket')
sys.exit();
print ('Socket Created', s)
host = 'www.google.com'
port = 80
try:
remote_ip = socket.gethostbyname(host)
except socket.gaierror:
print ('Hostname could not be resolved. Exiting')
sys.exit()
print ('Ip address of "' + host + '" is: ' + remote_ip )
s.connect((remote_ip, port))
print ('Socket Connected to ' + host + ' on ip ' + remote_ip)
message = 'GET / HTTP/1.1\r\n\r\n'
try:
s.sendall(message)
except socket.error:
print ('Send Failed')
sys.exit()
print ('Message send successfully')
reply = s.recv(4096)
print ('reply')
1 个回答
2
在Python 3中,str
表示的是一种Unicode字符串,这种字符串可以用很多种不同的字节方式来表示。默认情况下,字符串就是Unicode格式的。
如果你想得到一个普通的字节字符串,可以在字符串前面加上b
,比如b'GET / HTTP/1.1\r\n\r\n'
。你也可以使用Unicode字符串的encode
方法来获取特定的编码格式。
想要了解更多关于Unicode的内容,建议你阅读一下Python 3 Unicode入门指南。