利用socket实现文件传送,大约分为如下几步: 1.读取文件名2.检测文件是否存在3.打开文件(别忘了最后关闭文件)4.检测文件大小5.发送文件大小给客户端6.等客户端确认7.开始边读边发数据8.md5验证 实例1:实现步骤1-7 运行代码 #Author:Zheng Na #ftp服务端 import socket import os server = socket.socket() server.bind(('localhost',6969)) server.listen() while…
目录 Python3学习之路~2.1 列表.元组操作 Python3学习之路~2.2 简单的购物车程序 Python3学习之路~2.3 字符串操作 Python3学习之路~2.4 字典操作 Python3学习之路~2.5 简单的三级菜单程序 Python3学习之路~2.6 集合操作 Python3学习之路~2.7 文件操作 Python3学习之路~2.8 文件操作实现简单的shell sed替换功能 Python3学习之路~2.9 字符编码与转码 Python3学习之路~2.10 修改hapro…
实例1: 利用socket模拟客户端和服务器端各自收发一次数据: #Author:Zheng Na # 客户端 import socket # 声明socket类型,同时生成socket连接对象 client = socket.socket() # 默认参数family=AF_INET(表示地址簇为IPV4),type=SOCK_STREAM(表示socket类型为TCP) client.connect(('localhost',6969)) client.send(b"hello world&…
soket_server import socket,os,hashlib server = socket.socket() server.bind(('0.0.0.0',9999)) server.listen() while True: conn,addr = server.accept() print("new conn:",addr) while True: print("server on....") data = conn.recv(1024) if n…
一 socket介绍 TCP/IP 基于TCP/IP协议栈的网络编程是最基本的网络编程方式,主要是使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序. socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道来实现数据的互相传递. 我们知道网络 通信 都 是基于 ip+port 方能定位到目标的具体机器上的具体服务,操作系统有0-65535个端口,每个端口都可以独立对外提供服务,如果 把一个公司比做一台电脑 ,那公司的总机…
通过8.2的实例1-6,我们可以总结出来,socket的服务端和客户端的一般建立步骤: 服务端 步骤:1创建实例,2绑定,3监听,4阻塞,5发送&接收数据,6关闭. #Author:Zheng Na # 服务端 import socket server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket实例 server.bind(('localhost', 6969)) # 绑定要监听的端口 server.listen(…
作业: 开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 允许用户查看当前目录下文件 允许上传和下载文件,保证文件一致性 文件传输过程中显示进度条 附加功能:支持文件的断点续传 README: 1.client连接server端需要验证账号密码,密码使用MD5加密传输,三次验证不成功即退出.2.用户信息保存在服务器本地文件中,密码…
前面几节我们写的socket都只能实现服务端与一个客户端通信,并不能实现服务端与多客户端同时通信.接下来我们就来学习一下如何实现服务端同时与多个客户端通信,即并发. Socket Server socketserver就是对socket的一个再封装,主要功能就是实现并发. socketserver模块简化了编写网络服务器的任务. socketserver一共有以下4种类型: class socketserver.TCPServer(server_address,RequestHandlerCla…
一 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置. 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 "原子操作(atomic…
一 队列queue 当必须在多个线程之间安全地交换信息时,队列在线程编程中特别有用. 队列的作用:1.解耦,使程序直接实现松耦合 2.提高处理效率 列表与队列都是有顺序的,但是他们之间有一个很大的区别:从列表中取出一个数据,数据还在列表中,从队列中取出一个数据,队列中就减少一个数据.class queue.Queue(maxsize=0) #先入先出 class queue.LifoQueue(maxsize=0) #last in fisrt out class queue.PriorityQ…