import socket
# 服务端:
def get_file_2_content(new_client_socket,client_addr):
"""获取文件的内容"""
# 1.接收客户端 需要下载的文件名
# 接收客户端发送过来的请求
print("等待下载服务中...:")
file_name = new_client_socket.recv(1024).decode("utf-8")
print("客户端%s需要下载文件是:%s" % (str(client_addr), file_name))
file_content = None # 初始化
# 2.打开这个文件,读取数据
try:
f = open(file_name, "rb")
file_content = f.read()
f.close()
except Exception as ret:
print("没有要下载的文件%s" % file_name)
# 3.发送文件的数据给客户端
if file_content:
# new_client_socket.send("hahah".encode("utf-8"))
new_client_socket.send(file_content)
def main():
# 1.创建套接字 socket
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# 2.绑定本地信息 bind
tcp_server_socket.bind(("",8899))
# 3.让默认的套接字由主动变为被动 listen (监听套接字,等待有新的客户端进行连接)
tcp_server_socket.listen(128)
while True:
# 4.等待客户端的链接 accept(产生新的套接字用来为客户端服务)
new_client_socket,client_addr = tcp_server_socket.accept()
send_file_2_client(new_client_socket,client_addr)
# 关闭套接字
new_client_socket.close()
tcp_server_socket.close()
if __name__ == '__main__':
main()