python写了一个简单的文件传输代码,核心功能有,分享出去,其他的自己可以优化。
功能:client发送123.txt文件给server,server创建个名字叫234.txt的文件
client.py部分
import socket
import os
f = open("123.txt","r",encoding="utf-8")
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("localhost",2210))
f_size = os.stat("123.txt").st_size
s.send(str(f_size).encode())
# data = f.read()
for line in f:
s.send(line.encode())
s.close()
server.py部分
import socket
b = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
b.bind(('localhost',2210))
b.listen(5)
s,ad= b.accept()
#print(ad,end="\n")
f_size = s.recv(1024)
print(f_size,end="\n")
f_len = 0
with open("234.txt","w+",encoding="utf-8") as f:
while f_len < int(f_size):
data = s.recv(1024)
f.write(data.decode())
f_len += len(data)
b.close()
s.close()
client.py要计算传输文件大小,所以引入了os库
python也是用socket套接字传输的,server端要创建两个套接字,一个用来监听client端的连接,并返回第二个套接字。