客户端下载文件
import socket
def main():
# 创建套接字
tcp_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 获取服务器的ip和port、
dest_ip = input("请输入下载服务器的ip:")
dest_port = int(input("请输入服务器的端口:"))
# 链接服务器
tcp_socket.connect((dest_ip,dest_port))
# 获取下载文件名字
download_file_name = input("请输入需要下载的文件名字:")
# 文件名发送到服务器
tcp_socket.send(download_file_name.encode("gbk"))
# 接受文件数据
reve_data = tcp_socket.recv(1024)
# 保存接受文件数据
with open("[新]"+download_file_name,"wb") as f:
f.write(reve_data)
# 关闭套接字
tcp_socket.close()
if __name__ == '__main__':
main()
服务端
`import socket
def get_download_file(file_name):
# 打开读取文件
try:
with open(file_name,“rb”) as f:
content = f.read()
return content
except:
return “没有此文件”
def main():
# 创建套接字
tcp_socket= socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 绑定本地端口
tcp_socket.bind(("",7890))
# 监听模式
tcp_socket.listen(128)
# 被动接受
new_socket,new_address = tcp_socket.accept()
# 接受需要下载的文件名
file_name = new_socket.recv(1024).decode(“utf-8”)
file_content = get_download_file(file_name)
new_socket.send(file_content.encode(“gbk”))
new_socket.send(“hahaha发送成功”.encode(“gbk”))
new_socket.close()
tcp_socket.close()
if name == ‘main’:
main()`