day29作业
作业
写一个基于TCP协议套接字,服务端实现接收客户端的连接并发。
基于多线程实现
# server.py import socket from threading import Thread def task(server): while True: try: data = server.recv(1024).decode('utf-8') print(data) server.send(data.encode('utf-8')) except Exception: break conn.close() server = socket.socket() server.bind(('127.0.0.1',9999)) server.listen() while True: conn ,addr = server.accept() t = Thread(target=task, args=(conn,)) t.start()
# client.py import socket client = socket.socket() client.connect(('127.0.0.1',9999)) while True: msg = input('请输入') client.send(msg.encode('utf-8')) data = client.recv(1024).decode('utf-8') print(data)
基于多进程实现
# server.py import socket from multiprocessing import Process def task(conn): while True: try: data = conn.recv(1024).decode('utf-8') print(data) conn.send(data.encode('utf-8')) except Exception: break conn.close() if __name__ == '__main__': server = socket.socket() server.bind(('127.0.0.1', 9999)) server.listen() while True: conn, addr = server.accept() t = Process(target=task,args=(conn,)) t.start()
# client.py import socket client = socket.socket() client.connect(('127.0.0.1',9999)) while True: msg = input('请输入') client.send(msg.encode('utf-8')) data = client.recv(1024).decode('utf-8') print(data)
单线程内多协程实现并发
# server.py from gevent import monkey;monkey.patch_all() import gevent import socket def talk(conn): try: while True: data = conn.recv(1024).decode('utf-8') print(data) conn.send(data.encode('utf-8')) except Exception: pass conn.close() server = socket.socket() server.bind(('127.0.0.1', 9999)) server.listen() while True: conn, addr = server.accept() gevent.spawn(talk, conn)
# client.py import socket client = socket.socket() client.connect(('127.0.0.1',9999)) while True: msg = input('请输入') client.send(msg.encode('utf-8')) data = client.recv(1024).decode('utf-8') print(data)
day29作业的更多相关文章
- Day29作业及默写
作业: 1\ 默写 黏包协议 2\ 上传大文件(文件\视频\图片) 3\ 和你的同桌调通 从你的计算机上传一个视频到你同桌的电脑上 4\ 进阶 : 带上登录 Server #Server #!/usr ...
- day29 作业
1.引入属性访问控制+property 2.引入继承与派生的概念来减少代码冗余 注意:要满足什么"是"什么的关系,不满足"是"的关系不要去继承 import u ...
- python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)
一.昨日作业讲解 先来回顾一下昨日的内容 1.os模块 和操作系统交互 工作目录 文件夹 文件 操作系统命令 路径相关的 2.模块 最本质的区别 import会创建一个专属于模块的名字, 所有导入模块 ...
- python 作业
Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
- SQLServer2005创建定时作业任务
SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...
- 使用T-SQL找出执行时间过长的作业
有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下: SELECT sj.name , ...
- T-SQL检查停止的复制作业代理,并启动
有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分 ...
- Python09作业思路及源码:高级FTP服务器开发(仅供参考)
高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成 ...
随机推荐
- python Fatal error in launcher
1.之前电脑上只安装了一个python2.7时pip install virtualenv安装了virtualenv,后来又装了py3.6.最近想做断网环境下的虚拟环境快速移植发现查看virtuale ...
- 暑期——第四周总结(Ubuntu系统安装新版eclipse双击无法打开问题 【已解决】)
所花时间:7天 代码行:200(python)+3000(java) 博客量:1篇 了解到知识点 : Ubuntu安装新eclipse 在通过软件中心安装好eclipse之后,发现各种东西都不顺眼,不 ...
- JAVASE知识点总结(四)
第十七章:内部类和枚举 一.内部类 1.什么是内部类? 2.为什么要有内部类? 3.内部类的种类: 5.实例内部类 6.创建实例内部类 7.实例内部类注意点 8.访问变量原则: 4 9.静态内部类: ...
- Hadoop核心组件之YARN
YARN概述 Yet Another Resource Negotiator:另外资源的协调者 通用的资源管理系统 为上层应用提供统一的资源管理和调度 操作系统级别的调度框架,可以让各种计算框架运行在 ...
- Python 模拟淘宝登录的两种方法
方法一.urllib的post登录 import urllib import urllib2 import cookielib def taobao(username,password): cj = ...
- Akka实现WordCount(Scala)
Akka实现WordCount(Scala): 架构图: 项目结构: pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0 ...
- mybatis入门百分百
今天重新返回来看自己的mybatis,总结了一些更好入门的办法,下面用最简单的方法带领大家入门. 此处先引入类包的关系图片 1.构建一个==普通==maven项目 构建好之后向pom.xml添加一下依 ...
- cocos2d-x 系统学习cocos(2) 交互
交互 玩游戏的时候,我们需要用输入设备和游戏进行交互,那么游戏需要对玩家做出相应,比如说按下键盘的上下左右,角色就朝着对应的方向移动,按下技能键,角色就释放技能 键盘监听 响应 cocos2d-x中要 ...
- 搭建YUM本地仓库
本文介绍如何利用CentOS 7 ISO光盘镜像搭建YUM本地仓库. 环境准备: (1)VMware15.5版本虚拟机 (2)CentOS-7-x86_64-DVD-1908光盘镜像文件 1. 搭建Y ...
- Linux重要配置文件
目录 简介 0x01 系统重要文件 0x02 用户重要文件 0x03 重要日志文件 本教程概述 本课时学习Linux系统中重要的配置文件. 用到的工具 SshClient Ubuntu 标签 Linu ...