TCP Receive in Python,读出数据
TCP Receive in Python, reading the data out
我的Python脚本如下(必要时删除敏感数据)
import socket
class TCPConnection:
def __init__(self, sock=None):
if sock is None:
self.sock = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
else:
self.sock = sock
def connect(self, host, port):
try:
self.sock.connect((host, port))
print('Successful Connection')
except:
print('Connection Failed')
def readlines(self):
data = self.sock.recv(1024)
print(data)
if __name__ == '__main__' :
listen = TCPConnection()
listen.connect('**.**.**.**',##)
listen.readlines()
我得到以下输出。
Successful Connection
b'\x01\x00\xc7\x00\x08\x01\x07\t\x00\x00\x00\x03='
我现在需要做什么才能使 readlines() 函数的打印输出更加友好?从外观上看,我知道它是以字节为单位的,但除此之外,我迷路了。
所有的帮助都被优雅地接受了。
您可以在打印消息之前对其进行解码:
def readlines(self):
data = self.sock.recv(1024).decode()
print(data)
但仍请考虑您的数据不是 "ASCII" 或 "UTF-8"。
我的Python脚本如下(必要时删除敏感数据)
import socket
class TCPConnection:
def __init__(self, sock=None):
if sock is None:
self.sock = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
else:
self.sock = sock
def connect(self, host, port):
try:
self.sock.connect((host, port))
print('Successful Connection')
except:
print('Connection Failed')
def readlines(self):
data = self.sock.recv(1024)
print(data)
if __name__ == '__main__' :
listen = TCPConnection()
listen.connect('**.**.**.**',##)
listen.readlines()
我得到以下输出。
Successful Connection
b'\x01\x00\xc7\x00\x08\x01\x07\t\x00\x00\x00\x03='
我现在需要做什么才能使 readlines() 函数的打印输出更加友好?从外观上看,我知道它是以字节为单位的,但除此之外,我迷路了。
所有的帮助都被优雅地接受了。
您可以在打印消息之前对其进行解码:
def readlines(self):
data = self.sock.recv(1024).decode()
print(data)
但仍请考虑您的数据不是 "ASCII" 或 "UTF-8"。