【发布时间】:2018-08-10 03:30:46
【问题描述】:
我正在尝试从我的客户端向我的服务器发送一个带有特定文件名的字符串,然后将该文件发送到客户端。由于某种原因,即使在收到所有文件后它也会挂起。它挂在:
m = s.recv(1024)
client.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.1.2", 54321))
s.send(b"File:test.txt")
f = open("newfile.txt", "wb")
data = None
while True:
m = s.recv(1024)
data = m
if m:
while m:
m = s.recv(1024)
data += m
else:
break
f.write(data)
f.close()
print("Done receiving")
server.py
import socket
import os
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 54321))
while True:
client_input = c.recv(1024)
command = client_input.split(":")[0]
if command == "File":
command_parameter = client_input.split(":")[1]
f = open(command_parameter, "rb")
l = os.path.getsize(command_parameter)
m = f.read(l)
c.sendall(m)
f.close()
【问题讨论】:
-
注意:您的服务器示例代码未显示如何从侦听套接字接受
c。
标签: python file sockets send recv