将数据从服务器发送到客户端Python 2.7

时间:2016-02-02 03:22:22

标签: python server

我正在尝试编写一个读取.pdf文件并将数据发送到客户端服务器的服务器。

这是我的服务器程序的一部分。

while True: # infinite loop to connect to a client
    client, address = server.accept()
    data = copyfile(path)
    data = str(data)
    client.send(data.encode('utf-8'))
    client.close()

以下是我的客户端源代码的剪辑:

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# assume my host and ports are correct
client.connect((host, port))
data = client.recv(1024)
s = data.decode('utf-8')

print s

client.close()

以下是我要解决的错误:

client.send(message.encode( 'UTF-8'))

UnicodeDecodeError:'ascii'编解码器无法解码位置10中的字节0xe2:序数不在范围内(128)

1 个答案:

答案 0 :(得分:0)

只发送直接字节。

#client.py
x = open('out.pdf','wb')
while 1:
    data =''
    data = s.recv(1024)
    if data == b'': break
    x.write(data)
x.close()

服务器代码:

#server.py
x=open("test.pdf","rb")
client, address = s.accept()
while 1:
    data = x.read(1024)
    if data == b'':
        print("finished")
        x.close()
        client.close()
        break
    client.send(data)