基本思想:本次主要实现使用socket来实现ftp功能,最简单的文件上传和下载功能,和简单的shell命令模式,即客户端与服务器端建立连接后,有客户端发送命令,服务器端返回命令结果,下面直接上代码:
【注】一开始想写成面向对象的编程格式(类),但是由于本人技术小白,无法将socket自身的实例化带入到具体的函数中,相互关联,并且浪费了很多时间和尝试,最终还是放弃,但是以后也会继续向这方面努力的。
server端:
import socket
import os
print ("Waitting connected......")
HostPort = ('127.0.0.1',9999)
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(HostPort)
s.listen(1)
while True:
conn, addr = s.accept()
while True:
cmd = conn.recv(1024).decode()
if cmd == 'get':
print('hello')
cmd_result = os.popen('ls').read()
conn.send(cmd_result.encode('utf-8'))
File = conn.recv(1024).decode()
File_size = os.stat(File).st_size #返回的File_size是int类型
print(type(File_size))
conn.send(str(File_size).encode())
f = open(File,'rb') # 用二进制读取文件内容
for line in f:
conn.send(line) # 已经是二进制内容格式,所以在
#conn.close()
f.close()
if c