标签:send threading ddr _for strip bsp str server blog
class Ftp_server(socketserver.BaseRequestHandler): code="utf-8" def handle(self): while True: recv_head=self.request.recv(4) #收报头的长度 recv_data_len=struct.unpack("i",recv_head) print(recv_data_len) recv_head_data=self.request.recv(recv_data_len[0]) #收报头信息 print(recv_head_data) data_size=json.loads(recv_head_data)["data_size"] #--------------------------------------------------------------------------------------------- recv_size=0 with open("s",‘wb‘) as f: while recv_size < data_size: #开写数据 data=self.request.recv(1024) f.write(data) recv_size+=len(data) self.request.send("传输完成".encode("utf-8")) def put(self): print("alex草你妈") if __name__ == ‘__main__‘: obj=socketserver.ThreadingTCPServer(("127.0.0.1",8080),Ftp_server) obj.serve_forever()
class Client():
def __init__(self,Addr_server):
self.addr_server=Addr_server
self.socket = socket.socket()
self.client_connect()
def client_connect(self):
self.socket.connect(self.addr_server)
def run(self):
while True:
name_inpu = input("请输入用户名: ")
flie_inpu = input("请输入要传输的文件路径: ").strip()
filesize = os.path.getsize(flie_inpu)
dic = {"name": name_inpu, "file": flie_inpu, "data_size": filesize}
bytes_dic=json.dumps(dic).encode("utf-8")
len_dic = len(bytes_dic)
struct_len = struct.pack("i", len_dic)
self.socket.send(struct_len)
self.socket.send(bytes_dic)
with open(‘c‘,‘rb‘) as f:
for i in f:
self.socket.send(i)
print(self.socket.recv(1023).decode("utf-8"))
c=Client(("127.0.0.1",8080))
c.run()
标签:send threading ddr _for strip bsp str server blog
原文地址:http://www.cnblogs.com/sss4/p/6849614.html