用Python接收TCP,读出数据

时间:2015-05-12 13:30:38

标签: python oop tcp bytestream

我的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()函数的打印输出更友好?从它的外观来看,我知道它的字节数,但除此之外,我迷失了。

优雅地收到了所有帮助。

1 个答案:

答案 0 :(得分:1)

您可以在打印前解码信息:

def readlines(self):
    data = self.sock.recv(1024).decode()
    print(data)

但请注意您的数据不是“ASCII”或“UTF-8”。