出于某种原因,输出返回如下所示,而不是它应该的样子:一个在另一个下面;有条理
**参考:**x1c 0d1x
咨询.py
from socket import socket, AF_INET, SOCK_STREAM
from sys import argv
import pyfiglet
ascii_banner = pyfiglet.figlet_format("WHOIS - Gustang")
print (ascii_banner)
host = 'whois.iana.org'
port = 43
conn = host, port
crlf = b'\r\n'
bufsiz = 2172
if len(argv) == 2:
with socket(AF_INET, SOCK_STREAM) as s:
s.connect(conn)
ba = bytearray()
ba.endswith(crlf)
s.send(f'{argv[1]}\r\n'.encode())
resp = s.recv(bufsiz)
print (resp)
1条答案
按热度按时间rggaifut1#
您的输出看起来是原始字节(注意前面的b)。
recv
返回原始字节:https://docs.python.org/3/library/socket.html#socket.socket.recv我的猜测是,将其转换为字符串print(resp.decode("utf-8"))
将正确呈现“\r\n”。参见Convert bytes to a string