tcp文件下载
服务器端
import socket def send_file_2_client(new_client_socket,client_addr):
# 接收信息
file_name = new_client_socket.recv(1024).decode("utf-8") print("客户%s要下载的文件是:%s" % (str(client_addr), file_name)) # 定义发送的内容
send_content = None # 打开文件
try:
f = open(file_name,"rb")
send_content = f.read()
f.close()
except Exception as ret:
print("没有该文件信息") # 不做判断 如果没有该文件会报错:TypeError: a bytes-like object is required, not 'NoneType'
if send_content:
new_client_socket.send(send_content) def main():
# 创建套接字
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 绑定端口
tcp_server_socket.bind(("",7788)) # 被动监听
tcp_server_socket.listen(128) while True:
# 接收客户端信息
new_client_socket,client_addr = tcp_server_socket.accept() # while True:
send_file_2_client(new_client_socket,client_addr) # 关闭
new_client_socket.close()
# 关闭套接字
tcp_server_socket.close()
客户端
import socket def main():
# 创建
tcp_client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 连接服务器
# ip和port可以写死 也可以用input() 输入
server_ip = input("请输入服务器IP:")
server_port = int(input("请输入端口:"))
tcp_client_socket.connect((server_ip,server_port)) # 发送信息
file_name = input("请输入要下载的文件名:")
tcp_client_socket.send(file_name.encode("utf-8")) # 接收对方发来的数据
recv_data = tcp_client_socket.recv(1024)
print(recv_data)
if recv_data:
with open("[接收]" + file_name,"wb") as f:
f.write(recv_data) # 关闭套接字
tcp_client_socket.close()
tcp文件下载的更多相关文章
- python sockerserver tcp 文件下载 udp
#tcp serverclass MyHandler(socketserver.BaseRequestHandler): def handle(self): # 通信循环 while True: tr ...
- tcp文件下载客户端+服务端
客户端: import socket if __name__ == '__main__': # 创建tcp客户端socket tcp_client_socket = socket.socket(soc ...
- python实现tcp文件下载器
服务器端代码 import socket import os import threading # 处理客户端请求下载文件的操作(从主线程提出来的代码) def deal_client_request ...
- 使用网络TCP搭建一个简单文件下载器
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶服务器Server 三丶测试TCP server服务器 四丶客户端Client 五丶测试客户端向服务器下载 ...
- tcp案例之文件下载器
文件下载器客户端 import socket def main(): # 1.创建一个tcp socket tcp_client_socket=socket.socket(socket.AF_INET ...
- {每日一题}:tcp协议实现简单的文件下载器(单任务版)
文件下载器客户端 这个版本的只是为了方便回顾一下TCP客服端,服务端的创建流程,缺点就是 服务器一次只能让一个人访问下载,过两个写个使用面向对象写一个多线程版的强化一下. from socket i ...
- Python TCP通信之仿文件下载
TCP_文件下载_Client.py import socket def main(): # 创建TCP套接字 tcp_socket = socket.socket(socket.AF_INET, s ...
- 网络编程-python实现-TCP实现文件下载(1.1.4)
@ 目录 代码实现 代码实现 客户端 from socket import * def main(): # 创建socket tcp_client_socket = socket(AF_INET, S ...
- python tcp 粘包问题解决、文件下载等
from socket import * #以下是关于tcp:服务端 和 客户端的小例子#服务端socket_server = socket(AF_INET, SOCK_STREAM) socket_ ...
随机推荐
- python字符串/列表/元组/字典之间的相互转换(5)
一.字符串str与列表list 1.字符串转列表 字符串转为列表list,可以使用str.split()方法,split方法是在字符串中对指定字符进行切片,并返回一个列表,示例代码如下: # !usr ...
- python 之 subprocesss 模块、configparser 模块
6.18 subprocesss 模块 常用dos命令: cd : changedirectory 切换目录 tasklist:查看任务列表 tasklist | findstr python ...
- WUSTOJ 1307: 校门外的树(Java)
题目链接:
- Linux命令格式及7个常见终端命令
Linux命令格式 Linux常见的7个终端命令
- 使用docker-compose搭建WordPress
今天博主使用typecho各种不爽,索性干掉typecho,使用WordPress 依赖 mysql nginx yml 文件 version: '3' services: nginx: image: ...
- 【flume】5.采集日志进入hbase
设置我们的flume配置信息 # Licensed to the Apache Software Foundation (ASF) under one # or more contributor li ...
- 《一头扎进》系列之Python+Selenium框架设计篇5 - 价值好几K的框架,哎呦!这个框架还真有点料啊!!!
1. 简介 其实,到前面这一篇文章,简单的Python+Selenium自动化测试框架就已经算实现了.接下来的主要是介绍,unittest管理脚本,如何如何加载执行脚本,再就是采用第三方插件,实现输出 ...
- Linux磁盘管理系列 — LVM和RAID
一.逻辑卷管理器(LVM) 1.什么是逻辑卷管理器(LVM) LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对卷进行操作的抽象层. LVM是建立在硬盘 ...
- Angular 学习笔记 immer 使用
https://github.com/immerjs/immer#supported-object-types immer 是用来做 immutable 的. angular 的 change det ...
- 《图解HTTP》读后总结
阅读时间:2019.10.30-2019.11.6 阅读心得: 从知乎上看到有人推荐这本书,本身对计算机网络方面学习的比较少,于是就买来这本书开始看.这本书总体看下来比较轻松,因为书中的插画非常卡通, ...