服务端:
from socket import *
import os
import sys
os.chdir(sys.path[0])
def send_file(client_sokcet,client_addr):
file_name = client_sokcet.recv(1024).decode('utf-8')
print("客户端(%s)需要下载文件是:%s" % (str(client_addr), file_name))
file_content = None
try:
f = open(file_name,'r')
file_content = f.read()
f.close()
except Exception as ret:
print("文件%s不存在"%file_name)
if file_content:
client_sokcet.send(file_content.encode('utf-8'))
def main():
tcp_server_socket = socket(AF_INET,SOCK_STREAM)
tcp_server_socket.bind(('',9090))
tcp_server_socket.listen(128)
while True:
client_sokcet,client_addr = tcp_server_socket.accept()
send_file(client_sokcet,client_addr)
client_sokcet.close()
tcp_server_socket.close()
if __name__ == "__main__":
main()
客户端:
from socket import *
import os
import sys
os.chdir(sys.path[0])
def main():
tcp_client_cocket = socket(AF_INET,SOCK_STREAM)
#服务器信息
server_ip = input("请输入服务器IP: ")
server_port = int(input("请输入服务器PORT: "))
#链接服务器
tcp_client_cocket.connect((server_ip,server_port))
#输入需要下载的文件名
file_name = input("请输入需要下载的文件名:")
#发送下载请求
tcp_client_cocket.send(file_name.encode('utf-8'))
#接受数据
recv_data = tcp_client_cocket.recv(1024)
if recv_data:
with open("[接收]"+file_name,"wb") as f:
f.write(recv_data)
tcp_client_cocket.close()
if __name__ == "__main__":
main()