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_ ...
随机推荐
- mysql常用系统函数归类
数学函数 函数 作用 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) EXP(x) 返回值e(自然对数的底)的x次方 GREATEST(x1,x2, ...
- Word 中批量修改所有表格格式样式
1. 引言 我们在使用Word排版编写书籍时候,可能会带有许多表格,上百,甚至上千个表格都是有可能的.这么多的表格对于后期的样式修改是非常不利的,有什么好的方法能够一次性修改文档中所有的表格,将其统一 ...
- dede5.7-修改自定义表单
最近刚好帮客户做一个网站,需要用到dede的自定义表单功能.可是有个这样的需求,就是当表单提交成功后,要返回一个自定义页面的提示功能!可能是觉得dede自带的提示太low的原因吧!(一不小心又黑了下)
- 简单layer 快速上手
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- python学习-43 装饰器 -- 函数闭包2
函数闭包为函数加上认证功能 1.登陆账号 user_dic ={'username':None,'login':False} def auth_func(func): def wrapper(*arg ...
- 杭电1081 第二道 dfs题
Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...
- 转:common.js 常用js公共函数库
转自其他博主,自己开发备用 var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data: data, d ...
- md5 helper
public static string ToMD5Hash(this string str) { if (string.IsNullOrEmpty(str)) return null; return ...
- 基于【 bug解决】一 || mysql的ONLY_FULL_GROUP_BY导致的sql语句错误
一.Mysql错误: In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated ...
- 安卓开发之利用runOnUiThread在子线程更新UI
package com.lidaochen.test; import android.graphics.Bitmap; import android.graphics.BitmapFactory; i ...